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

R语言cur_data弃用后,如何生成含分组数据框列的汇总表?

替代cur_data()实现分组存数据框的方案

原代码中dplyr::cur_data()即将被弃用,你可以用以下两种方法实现相同效果:

方法1:指定排除分组列

直接用pick(-col_a)选择除分组列外的所有列,再包裹成列表:

df <- data.frame(col_a = c("a","a","b","c","c"),
                 col_b=c(1,2,3,4,5),
                 col_c=c("q","w","e","r","t"))

dfdata <- df %>% 
  dplyr::group_by(col_a) %>% 
  dplyr::summarise(data = list(pick(-col_a)), .groups = "drop")

# 输出结果
dfdata
# A tibble: 3 × 2
  col_a data            
  <chr> <list>          
1 a     <tibble [2 × 2]>
2 b     <tibble [1 × 2]>
3 c     <tibble [2 × 2]>

dfdata$data[[1]]
# A tibble: 2 × 2
  col_b col_c
  <dbl> <chr>
1     1 q    
2     2 w    

方法2:通用适配任意分组列

如果不确定分组列名称,或者分组列有多个,用group_cols()自动识别分组列,再排除:

dfdata <- df %>% 
  dplyr::group_by(col_a) %>% 
  dplyr::summarise(data = list(pick(-group_cols())), .groups = "drop")

说明

cur_data()原本的作用是返回当前分组中除分组列外的所有列,官方推荐用pick(-group_cols())作为替代,这种写法更灵活,能适配任意数量和名称的分组列,效果和原代码完全一致。

内容的提问来源于stack exchange,提问作者user24121995

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:00:04