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

如何在R语言的DataFrame中拼接列与自定义字符串?

R语言实现DataFrame列拼接与列重排

问题背景

我有如下DataFrame:

ID  GRgroup ARgroup
MB-0000 High    Moderate
MB-0002 Moderate    High
MB-0005 High    High
MB-0006 Moderate    Low
MB-0008 High    Low
MB-0010 High    Moderate

想要拼接第2列和第3列,期望输出如下:

ID  GRgroup ARgroup ARGR
MB-0000 High    Moderate    AR:Moderate_GR:High
MB-0002 Moderate    High    AR:High_GR:Moderate
MB-0005 High    High    AR:High_GR:High
MB-0006 Moderate    Low AR:Low_GR:Moderate
MB-0008 High    Low AR:Low_GR:High
MB-0010 High    Moderate    AR:Moderate_GR:High

我已经用Python实现了该功能,代码如下:

import pandas as pd

# 按指定格式拼接'GRgroup'和'ARgroup'列
df['ARGR'] = "AR:" + df['ARgroup'] + "_GR:" + df['GRgroup']

# 重排列顺序
df = df[['ID', 'GRgroup', 'ARgroup', 'ARGR']]

请问如何用R语言实现该功能?


R语言实现方案

方法1:基础R原生语法

无需额外安装包,直接用原生函数完成需求:

# 先构造示例数据框
df <- data.frame(
  ID = c("MB-0000", "MB-0002", "MB-0005", "MB-0006", "MB-0008", "MB-0010"),
  GRgroup = c("High", "Moderate", "High", "Moderate", "High", "High"),
  ARgroup = c("Moderate", "High", "High", "Low", "Low", "Moderate"),
  stringsAsFactors = FALSE
)

# 拼接生成ARGR列
df$ARGR <- paste0("AR:", df$ARgroup, "_GR:", df$GRgroup)

# 重排列顺序
df <- df[, c("ID", "GRgroup", "ARgroup", "ARGR")]

# 查看结果
print(df)

方法2:tidyverse工具链(dplyr)

如果习惯使用tidyverse风格,可借助dplyr包的函数实现:

library(dplyr)

# 构造示例数据框
df <- data.frame(
  ID = c("MB-0000", "MB-0002", "MB-0005", "MB-0006", "MB-0008", "MB-0010"),
  GRgroup = c("High", "Moderate", "High", "Moderate", "High", "High"),
  ARgroup = c("Moderate", "High", "High", "Low", "Low", "Moderate"),
  stringsAsFactors = FALSE
)

# 拼接列并调整顺序
df <- df %>%
  mutate(ARGR = paste0("AR:", ARgroup, "_GR:", GRgroup)) %>%
  select(ID, GRgroup, ARgroup, ARGR)

# 查看结果
print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:08:18