如何在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
相关产品推荐
相关产品推荐

