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

R语言如何按列中单个元素而非列本身分组进行数据汇总?

解决方案

要实现按String列的单个元素分组并计算对应Numeric列的均值,你需要先将嵌套的字符串列拆分成单独的行,再进行分组汇总。具体步骤如下:

  1. 加载所需的tidyverse工具包(包含dplyr和tidyr):
library(tidyverse)
  1. 使用unnest()函数将String列中的每个元素拆分为独立行,同时保留对应行的Name和Numeric值:
df_unnested <- df %>% unnest(String)

拆分后的中间结果示例:

# A tibble: 12 × 3
   Name   Numeric String
   <chr>    <dbl> <chr> 
 1 Python       9 ABCD  
 2 Python       9 A     
 3 Python       9 AB    
 4 R           14 XYZ   
 5 R           14 Q     
 6 R           14 ABCD  
 7 Java         3 AB    
 8 Java         3 A     
 9 SQL          6 AB    
10 SQL          6 A     
11 SQL          6 XYZ   
12 Excel       20 AB    
13 Excel       20 Q     
  1. 按拆分后的String元素分组,计算对应Numeric列的均值:
df_result <- df_unnested %>% 
  rename(string_element = String) %>% 
  group_by(string_element) %>% 
  summarize(mean_numeric = mean(Numeric))

最终得到的目标结果:

# A tibble: 5 × 2
  string_element mean_numeric
  <chr>                 <dbl>
1 A                       6  
2 AB                      9.5
3 ABCD                   11.5
4 Q                      17  
5 XYZ                    10  

补充说明

  • unnest()是tidyr包的核心函数,专门用于展开嵌套的列表/向量列,将每个元素映射为单独的行。
  • 无论你的String列存储的是向量还是列表类型,unnest()都能直接处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:25:18