所以我有一个由0和1组成的数据框。我想做一个循环,随机抽样38个观察结果并用NA替换它们。我成功地进行了一次迭代,其中原始矢量观察被替换为以下一行代码:
char* [0]
但是,我想这样做20次并将每次迭代编译为单个对象中的单独列。最终,我将有一个20列的数据框,每个数据框有191个观测值,每个观测值有38个随机取代的NA。在循环结束时,我希望将数据框写出为文本文件。感谢您在正确的方向上提供任何帮助。
数据集:
https://drive.google.com/file/d/0BxfytpfgCdAcdEQ2LWFuVWVqMVU/view?usp=sharing
答案 0 :(得分:0)
也许是这样的:
# Fake data
set.seed(1998)
foo = data.frame(V2=sample(0:1, 191, replace=TRUE))
# Create 20 samples where we replace 38 randomly chosen values with NA
n = 20
samples = as.data.frame(replicate(n, {
x = foo$V2
x[sample(seq_along(x), 38)] = NA
x
}))
然后你可以用你想要的任何格式写它。例如:
write.table(samples, "samples.txt")
write.csv(samples, "samples.csv", row.names=FALSE)