【发布时间】:2021-03-21 06:18:02
【问题描述】:
我正在尝试在 R 中创建一个大约 5000 行和 5-6 列的虚拟数据集。我试图通过为每一列创建随机函数来实现它。但是调用函数只返回一个值。我试图实现它的代码如下:-
Vertical <- function(a) {
vec1 <- c('HiTech', 'BFSI', 'Insurance', 'Retail', 'Ecomm', 'Media', 'Govt')
for(i in 1:a) {
b <- sample(vec1,1)
return(b)
}
}
n <- Vertical(5000)
我需要变量“n”来返回我无法实现的值范围(总共 5000)。请求一些帮助。 谢谢。
【问题讨论】:
-
不应该是
sample(vec1, i),i而不是1? -
正如 Pkumar 提到的,你想使用
i,你可能也想使用replace,sample(vec1, i, replace=TRUE)。接下来你希望b成为一个列表(b <- list()),所以b[[i]] <- sample(vec1, i, replace=TRUE)。这样您就可以将return语句移到for 循环之外。最后,您可能不想使用循环,但这是一个不同的讨论。 -
谢谢 Pkumar 和 William,这个解释帮助很大。