You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用旧版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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:52:04