在dplyr包中为R调用slice(df, i)
时,如果我要求的行索引不存在(nrows < i
),它似乎返回所有行但是第一个小组,就像我打电话给slice(df, -1)
。
例如:
library(dplyr)
c1 <- c("a","b","c")
c2 <- 1:3
df <- data.frame(c1,c2)
slice(df,2)
结果将符合预期:
b 2
但如果我打电话
slice(df, 5)
结果是每行但第一行:
b 2
c 3
使用group_by()
和THEN在群组上调用slice()
时,这尤其令人厌烦。 slice()
这样做有合理的原因吗?
似乎返回的行填充了NAs,行指数大于&#39; nrows&#39;分组不够高#34;生成请求的切片可能是一个有用的结果。
这是因为我试图从每个组中提取排名结果,但有些组没有足够的数据,而其他组则没有。例如&#34;列出每个地区销售额第10高的销售人员。&#34;但在其中一个地区只有8名销售人员。
答案 0 :(得分:2)
我参加这个派对的时间有点晚了但是这里有。错误消息有一个非常简单的解决方案&#34;错误:不兼容的类型,期待一个字符向量&#34;
只需在ungroup()
功能之前插入mutate()
,您就可以了。
但我认为它是slice()
中某种类型的错误。我将提交错误报告。
答案 1 :(得分:0)
我同意:这种行为似乎不对。您可以使用以下替代方法:
{
"query" : {
"query_string" : {
"fields" : ["content", "name"],
"query" : "Minnesota^2 health"
}
}
}