gpt4 book ai didi

r - 不循环地填充列表元素

转载 作者:行者123 更新时间:2023-12-04 11:30:56 24 4
gpt4 key购买 nike

我尽量不使用 for 循环来为列表的元素赋值。

在这里,我创建了一个空列表,将其长度设置为 20,并为 20 个元素中的每一个元素命名。

mylist <- list()
length(mylist) <- 20
names(mylist) <- paste0("element", 1:20, sep = "")

我希望 mylist 的每个元素都包含从随机生成的数字池中抽取的样本,这些数字表示为 x:

x <- runif(100, 0, 1)

我尝试了以下代码,但没有达到预期的结果:

mylist[[]] <- sample(x = x, size = 20, replace = TRUE) # Gives an error
mylist[[1:length(mylist)]] <- sample(x = x, size = 20, replace = TRUE) # Does not give the desired result
mylist[1:length(mylist)] <- sample(x = x, size = 20, replace = TRUE) # Gives the same undesired result as the previous line of code
mylist[] <- sample(x = x, size = 20, replace = TRUE) # Gives the same undesired result as the previous line of code

附言如上所述,所需的结果是一个包含 20 个元素的列表,其中分别包含 20 个数值。我可以使用 for 循环来完成,但我想成为更好的 R 用户并尽可能多地使用矢量化操作。

感谢您的帮助。

最佳答案

也许 replicate正是您要找的。

mylist <- replicate(20, sample(x = x, size = 20, replace = TRUE), simplify=FALSE)
names(mylist) <- paste0("element", 1:20, sep = "")

请注意,无需先创建列表,replicate会为你做的。

关于r - 不循环地填充列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20845660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com