使用dplyr :: filter,如何将输出限制为前500行?

use*_*rJT 9 r dplyr

dplyr是一个伟大而快速的图书馆.

使用%>%运算符可以实现强大的操作.

在我的第一步中,我需要将输出限制为最多500行(用于显示目的).

我怎样才能做到这一点?

par<-filter(pc,Child_Concept_GID==as.character(mcode)) %>% select(Parent_Concept_GID)
Run Code Online (Sandbox Code Playgroud)

我需要的是类似的东西

filter(pc,CONDITION,rows=500)
Run Code Online (Sandbox Code Playgroud)

有没有直接的方法或一个很好的解决方法,而没有使第一步成为一个单独的步骤(在%>%"流"之外)

mat*_*ers 23

有几种方法可以做到这一点.假设您正在管道数据(使用%>%)

  • top_n(tn)适用于分组数据.如果使用arrange()对数据进行排序,则不会返回行数
  • head(500) 占用前500行(例如,可以在arrange()之后使用)
  • sample_n(size=500) 可用于选择500个任意行

如果要查找等效于SQL的LIMIT的R,请使用head().


Bra*_*sen 13

我想你实际上是在找slice()这里.

filter(pc, condition) %>% slice(1:500) 
Run Code Online (Sandbox Code Playgroud)

这不会对结果进行排名.它只是按位置拉一个切片.在这种情况下,位置1到500.

如果这来自关系数据库,head则是更好的选择.