【发布时间】:2021-10-04 18:04:33
【问题描述】:
我正在尝试为其他程序生成大量测试数据。 在 R Studio 中工作,我导入了一个 SPSS sav 文件,该文件包含 73 个变量以及其中记录的值和标签,使用 Haven 作为数据框“td”。这为我提供了我需要使用的所有变量名称。然后我删除所有现有数据。
td <- td[0,]
然后我通过加载索引 ID 生成 10,000 个测试数据行
td$ID <- 12340000:12349999
到目前为止一切顺利。
我有一个常量叫ThismanyRows <- 10000
我在一个名为 BinaryVariables 的变量中有大量列标题名称
还有一个有效值向量,称为CheckedOrNot <- c(NA, 1)
这就是问题所在:
td[,BinaryVariables] <- sample(x = CheckedOrNot, size= ThismanyRows, replace = TRUE)
确实用数据填充所有列。但它都是完全相同的数据,这不是我想要的。 我希望示例函数针对每一列运行,但不是每一列中的每个值。
即使
Fillbinary <- function () {sample(x = CheckedOrNot, size= ThismanyRows, replace = TRUE)}
和
td <- lapply(td[,BinaryVariables],Fillbinary)
生成:FUN(X[[i]], ...) 中的错误:未使用的参数 (X[[i]])
到目前为止,我还无法弄清楚如何将每一列作为一列处理并将示例函数应用于它。
非常感谢任何帮助。
【问题讨论】:
-
您正在生成 10 个值并将其输入以替换 3 * 10 个值。将您的样本调整为
size=ThismanyRows*length(BinaryVariables)
标签: r dataframe random multiple-columns test-data