如何为R数据框的每行扩展指定的plate_x和plate_z网格?
解决方案
需求说明
现有分组tibble数据框pitch_type_df,需为每行数据生成plate_x(取值范围-1.75至1.75,步长0.1)与plate_z(取值范围0至4.25,步长0.1)的所有组合,最终得到每行原数据与该网格的全组合结果。
实现代码
# 加载tidyverse工具包 library(tidyverse) # 定义目标网格 plate_grid <- expand_grid( plate_x = seq(-1.75, 1.75, by = 0.1), plate_z = seq(0, 4.25, by = 0.1) ) # 生成每行原数据与网格的全组合 result_df <- pitch_type_df %>% rowwise() %>% mutate(plate_data = list(plate_grid)) %>% unnest(plate_data) %>% ungroup() # 可选:取消原分组,根据后续需求决定是否保留
代码说明
- 定义网格:提前生成
plate_grid避免重复计算,确保网格的一致性; - 逐行处理:
rowwise()让后续操作按原数据的每行独立执行; - 绑定网格:
mutate(...)将整个网格作为列表列添加到原数据每行; - 展开组合:
unnest(plate_data)把列表列展开,实现每行原数据与网格所有行的一一组合; - 取消分组:
ungroup()可选,若后续不需要保留原数据的分组结构则执行。
内容的提问来源于stack exchange,提问作者Drew_Haugen
相关产品推荐
相关产品推荐

