使用dplyr对数据帧进行采样

时间:2014-01-27 21:06:51

标签: r dplyr

我可以从data.frame中抽取10行,如下所示:

mtcars[sample(1:32, 10),]

使用dplyr执行此操作的语法是什么?这就是我试过的:

library(dplyr)
filter(mtcars, sample(1:32, 10))

2 个答案:

答案 0 :(得分:1)

我相信你在你的例子中并没有真正“过滤”,你只是在抽样。

在hadley的话中,这是函数的目的:

  

filter()与subset()的工作方式类似,不同之处在于您可以为其提供任意数量的过滤条件,这些过滤条件与& (不   &安培;&安培;这很容易意外!)

以下是mtcars数据集的示例,因为它在introductory vignette中使用

library(dplyr)
filter(mtcars, cyl == 8, wt < 3.5)
mpg cyl disp  hp drat    wt  qsec vs am gear carb
1 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
2 15.2   8  304 150 3.15 3.435 17.30  0  0    3    2
3 15.8   8  351 264 4.22 3.170 14.50  0  1    5    4

作为结论:过滤器等同于subset(),而不是sample()

答案 1 :(得分:0)

想出怎么做(尽管Josh O'Brien打败了我):

filter(mtcars, rownames(mtcars) %in% sample(rownames(mtcars), 10, replace = F))