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

如何使用dplyr基于行数据创建新列并以另一列值命名新列

实现方法

你可以搭配dplyr和tidyr的pivot_wider函数完成需求,示例代码如下:

第一步:加载依赖包&构造示例数据

library(dplyr)
library(tidyr)

# 你的原始数据
my_data <- data.frame(
  Cars = c("toyota", "benz", "bmw"),
  Colour = c("red", "white", "blue")
)

第二步:转换生成目标数据框

方法1:更简洁的写法(利用R的向量回收机制)

result <- my_data %>%
  bind_cols(
    pivot_wider(my_data, names_from = Cars, values_from = Colour)
  )

方法2:逻辑更清晰的写法

result <- my_data %>%
  # 先提取汽车-颜色的对应关系,转成单行宽表
  pivot_wider(names_from = Cars, values_from = Colour) %>%
  # 和原始表做全拼接,让每一行都带上所有车型的颜色列
  crossing(my_data, .) %>%
  # 调整列顺序匹配你的预期结果
  select(Cars, Colour, everything())

结果验证

两种方法输出的result结构和你要求的完全一致:

CarsColourtoyotabenzbmw
toyotaredredwhiteblue
benzwhiteredwhiteblue
bmwblueredwhiteblue

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:09:02