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

如何基于单元格值在R数据框中创建新行?

解决方案

方法一:使用tidyverse包(推荐)

先构造原始数据框:

df <- data.frame(
  id = c(1, 2),
  name = c("Pete", "Anna"),
  shoes = c("nike; adidas; puma", "nike"),
  stringsAsFactors = FALSE
)

利用separate_rows()函数直接拆分指定列,指定分隔符为"; "(匹配分号加空格的组合):

library(tidyverse)

result_df <- df %>%
  separate_rows(shoes, sep = "; ")

执行后即可得到目标格式的数据框。

方法二:Base R 原生实现

如果不想加载额外包,可通过基础函数完成:

# 拆分shoes列的字符串
shoes_split <- strsplit(df$shoes, "; ")
# 按拆分后的元素长度重复id和name列
id_rep <- rep(df$id, sapply(shoes_split, length))
name_rep <- rep(df$name, sapply(shoes_split, length))
# 拼接生成新数据框
result_df_base <- data.frame(
  id = id_rep,
  name = name_rep,
  shoes = unlist(shoes_split),
  stringsAsFactors = FALSE
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:10:34