【发布时间】:2020-02-05 02:24:33
【问题描述】:
我有一个数据框列表:
df_DJF = data.frame(replicate(2,sample(0:130,30,rep=TRUE)))
df_JJA = data.frame(replicate(2,sample(0:130,20,rep=TRUE)))
df_MAM = data.frame(replicate(2,sample(0:130,25,rep=TRUE)))
df_SON = data.frame(replicate(2,sample(0:130,15,rep=TRUE)))
df_list = list(df_DJF, df_JJA, df_MAM, df_SON)
我想随机选择每个数据帧的 80%。我可以通过执行此操作并使用 sample_size 作为行索引来手动执行此操作。
sample_size = floor(0.8*nrow(df_DJF))
picked_DJF = sample(seq_len(nrow(df_DJF)), size = sample_size)
我的问题是我有很多行数不同的 df。所以我想自动化这个过程。最后,我想要 4 个样本大小,其中包含正确的数字。 sample_sizes 的名称应该是:
samplenames = paste("sample_size", c("DJF", "JJA", "MAM", "SON"), sep = "_")
“picked”也一样...应该是pick_DJF等等...
【问题讨论】:
-
查找
assign,这对于循环似乎可以正常工作,但对于apply函数效果较差 -
我已经尝试过分配,但我最终只得到了一个样本...你能告诉我怎么做吗?
-
for(x in samplenames){assign(x,sample(0:130,30,rep=TRUE))}