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

如何按x分组合并列以创建嵌套DataFrame?

在R中按分组创建嵌套DataFrame

问题描述

给定如下R DataFrame:

df <- data.frame(x = rep(c(1,2,3,4),times=3), 
                 y = rep(c("Y","W","T","R"),times=3), 
                 z = rep(c("A","B","C","D"),times=3))

数据预览:

x   y   z
=========
1   Y   A       
2   W   B       
3   T   C       
4   R   D       
1   Y   A       
2   W   B       
3   T   C       
4   R   D       
1   Y   A       
2   W   B

需要按x的唯一值分组,将y和z列合并为嵌套的DataFrame列(命名为zy),最终得到如下结构的结果:

x   zy
======
1   <dataframe>         
2   <dataframe>         
3   <dataframe>     
4   <dataframe>

解决方案

可以使用dplyr包的分组与嵌套功能实现,步骤如下:

  1. 加载dplyr包(若未安装需先执行install.packages("dplyr")):
library(dplyr)
  1. 执行分组嵌套操作:
nested_df <- df %>%
  group_by(x) %>%
  nest(zy = c(y, z)) %>%
  ungroup() # 可选,移除分组标记,让结果成为普通DataFrame

说明

  • group_by(x):按x的唯一值对数据进行分组
  • nest(zy = c(y, z)):将每组中的y和z列打包成一个嵌套的DataFrame,并将该列命名为zy
  • 查看嵌套内容:可以通过nested_df$zy[[1]]查看x=1对应的嵌套DataFrame,输出如下:
y z
1 Y A
2 Y A
3 Y A

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 14:45:40