我刚开始使用RStudio学习R,或许我有一些基本问题。
其中一个人关注"样本"功能。
更具体地说,我的数据集由147个变量的402224个观测值组成。我的任务是采集50个观测值的样本,然后生成数据帧,依此类推。
但是当执行函数样本时
y = sample(mydata, 50, replace = TRUE, prob = NULL)
结果是具有40224个50个变量的观测值的数据集。也就是说,抽样是在变量而非观察的情况下完成的。
你知道为什么会这样吗? 提前谢谢。
答案 0 :(得分:2)
如果您想要从数据框中替换50个观察数据框,可以尝试:
mydata[sample(nrow(mydata), 50, replace=TRUE), ]
或者,您可以使用sample_n
包中的dplyr
功能:
sample_n(mydata, 50)
答案 1 :(得分:1)
人们给出的其他答案是选择行,但看起来你是在列之后。你仍然可以用类似的方式完成这个任务。
这是一个样本df。
PROMPT=''
然后,随机选择2列和所有观察我们可以做到这一点
df = data.frame(a = 1:5, b = 6:10, c = 11:15)
> df
a b c
1 1 6 11
2 2 7 12
3 3 8 13
4 4 9 14
5 5 10 15
所以,你想要做的就是这样的事情
> df[ , sample(1:ncol(df), 2)]
c a
1 11 1
2 12 2
3 13 3
4 14 4
5 15 5
答案 2 :(得分:0)
这是因为sample
只接受矢量。
尝试以下方法:
library(data.table)
set.seed(10)
df_sample<- data.table(df)
df[sample(.N, 402224 )]