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

如何移除R语言数据框指定列单元格内的重复词汇?

问题修正方案

你的代码没生效的核心问题有两个:

  • 拆分字符串用错了分隔符:combinedmode字段是用**下划线_**分隔的,但你写了,
  • 最终合并用错了连接符:你需要的是短横线-,但代码里用了,

修正后的基础R代码

先加载stringr包,调整拆分和合并的参数即可:

library(stringr)

# 构造示例数据
df <- data.frame(
  id = 1:6,
  combinedmode = c(
    "Bicycle_Bicycle",
    "Bicycle_Bicycle_Train_Walking",
    "Bicycle_Train_Train_Bicycle",
    "Walking",
    "Bicycle_Train_Walking",
    "Bicycle"
  ),
  stringsAsFactors = FALSE
)

# 生成去重后的新列
df$combinedmode2 <- sapply(df$combinedmode, function(x) {
  # 按下划线拆分字符串
  mode_parts <- str_split(x, "_")[[1]]
  # 去重后用短横线连接
  paste(unique(mode_parts), collapse = "-")
})

tidyverse风格实现(更简洁)

如果习惯用管道式代码,可以用dplyr+purrr组合:

library(dplyr)
library(purrr)
library(stringr)

df <- df %>%
  mutate(combinedmode2 = map_chr(combinedmode, ~ {
    mode_parts <- str_split(.x, "_")[[1]]
    paste(unique(mode_parts), collapse = "-")
  }))

处理后的最终结果

idcombinedmodecombinedmode2
1Bicycle_BicycleBicycle
2Bicycle_Bicycle_Train_WalkingBicycle-Train-Walking
3Bicycle_Train_Train_BicycleBicycle-Train
4WalkingWalking
5Bicycle_Train_WalkingBicycle-Train-Walking
6BicycleBicycle

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:48:22