在R中如何将字符串类型的分组变量拆分为两个新变量
方法1:使用tidyr包(tidyverse生态,代码更简洁)
如果已经安装tidyverse或tidyr包,用separate()函数可以快速完成拆分:
# 未安装包先运行 install.packages("tidyr") library(tidyr) # 拆分Group列,remove=FALSE表示保留原始Group列,不需要的话设为TRUE即可 Exp1 <- Exp1 %>% separate(Group, into = c("Type", "Achivement"), sep = " ", remove = FALSE)
如果需要和你给出的示例一致,让Type列末尾带空格,可以再加一步调整:
Exp1$Type <- paste0(Exp1$Type, " ")
方法2:Base R实现(无需安装额外包)
用基础函数strsplit()拆分字符串后提取对应位置的元素即可:
# 按空格拆分Group列的所有值 split_res <- strsplit(Exp1$Group, split = " ") # 提取每个拆分结果的第一个元素为Type列,末尾加空格和示例格式匹配 Exp1$Type <- sapply(split_res, function(x) paste0(x[1], " ")) # 提取每个拆分结果的第二个元素为Achivement列 Exp1$Achivement <- sapply(split_res, function(x) x[2])
内容的提问来源于stack exchange,提问作者gokgok
相关产品推荐
相关产品推荐

