使用旧版dplyr保留字符串对前2个实例的过滤方法求助
解决方法
因为你的dplyr版本不支持slice_head,可以用row_number()配合分组过滤来实现需求,关键是要同时按String 1和String 2分组,而不是只按单个字段分组:
df2 <- df1 %>% group_by(`String 1`, `String 2`) %>% filter(row_number() <= 2) %>% ungroup()
代码说明
group_by(String 1,String 2):按两个字符串的配对组合分组,确保每个分组对应同一个(String1,String2)的所有实例row_number() <= 2:在每个分组内按原始数据顺序给行编号,保留前2行ungroup():可选操作,取消分组状态,避免后续数据操作受分组限制
你之前代码的问题
- 第一个代码:
filter(String 2, n = 2)用法错误,filter的参数是逻辑判断条件,不是字段名和数量 - 第二个代码:
top_n(String 2, 2)是按String 2的取值大小筛选前2个,不是按原始顺序保留实例,且仅按String 1分组不符合需求
内容的提问来源于stack exchange,提问作者halowiz
相关产品推荐
相关产品推荐

