当调用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名销售人员.