小编huf*_*uff的帖子

Rp的dplyr切片中的奇怪行为

当调用slice(df, i)dplyr包中的R时,如果我要求的行索引不存在(nrows < i),它似乎返回所有行,但是返回组中的第一行,就像我调用的那样slice(df, -1).

例如:

library(dplyr)

c1 <- c("a","b","c")
c2 <- 1:3
df <- data.frame(c1,c2)

slice(df,2)
Run Code Online (Sandbox Code Playgroud)

结果将如预期:

b  2
Run Code Online (Sandbox Code Playgroud)

但是,如果我打电话

slice(df, 5)
Run Code Online (Sandbox Code Playgroud)

结果是每一行第一行:

b  2
c  3
Run Code Online (Sandbox Code Playgroud)

当使用group_by()和然后调用slice()组时,这尤其令人厌烦.是否有合理的理由slice()这样做?

似乎返回的行填充了NAs,对于大于'nrows'的行索引,在组中"不够"以产生所请求的切片可能是有用的结果.

这是因为我试图从每个组中提取排名结果,但有些组没有足够的数据,而其他组则没有.例如"列出每个地区销售额第10高的销售人员." 但在其中一个地区只有8名销售人员.

r dplyr

6
推荐指数
1
解决办法
1780
查看次数

标签 统计

dplyr ×1

r ×1