R语言如何将分组数据框的数值序列列x从1:7扩展至1:180
实现方案
你可以通过以下两种常用方式实现需求:
方案1:从原始数据框直接生成(更简洁高效)
无需提前做分组拆分,直接按y、z分组后扩展x列即可:
library(tidyverse) result <- mydf %>% group_by(y, z) %>% reframe(x = 1:180) %>% ungroup()
该代码会自动为每个y+z分组生成1~180的连续x值,y、z保持分组对应的固定取值,最终直接返回合并好的完整数据框,总共有3*180=540行。
方案2:基于你已拆分好的分组列表处理
如果你要基于已经得到的my_grped_df列表处理,可以用purrr::map_dfr遍历列表并合并结果:
library(tidyverse) result <- my_grped_df %>% map_dfr(~ tibble( x = 1:180, y = unique(.x$y), z = unique(.x$z) ))
结果验证
你可以通过以下代码确认结果符合要求:
# 查看总行数 nrow(result) # 输出应为540 # 查看每个分组的行数 result %>% count(y,z) # 查看每组x的取值范围 result %>% group_by(y,z) %>% summarise(min_x = min(x), max_x = max(x))
内容的提问来源于stack exchange,提问作者Doug Fir
相关产品推荐
相关产品推荐

