我可以从data.frame中抽取10行,如下所示:
mtcars[sample(1:32, 10),]
使用dplyr执行此操作的语法是什么?这就是我试过的:
library(dplyr)
filter(mtcars, sample(1:32, 10))
答案 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))