R中的样本函数

时间:2017-05-17 16:19:24

标签: r

我刚开始使用RStudio学习R,或许我有一些基本问题。 其中一个人关注"样本"功能。 更具体地说,我的数据集由147个变量的402224个观测值组成。我的任务是采集50个观测值的样本,然后生成数据帧,依此类推。 但是当执行函数样本时 y = sample(mydata, 50, replace = TRUE, prob = NULL) 结果是具有40224个50个变量的观测值的数据集。也就是说,抽样是在变量而非观察的情况下完成的。

你知道为什么会这样吗? 提前谢谢。

3 个答案:

答案 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 )]