首页 > 解决方案 > 如何将一个字符串分成多个变量

问题描述

我有一个看起来像这样的df:

在此处输入图像描述

我想删除等于IDfrom的部分Name,然后构建三个新变量,它们等于 的最后两位数Name,即 Name 中的第 3 位Name', and 4th place in 。...看起来如下所示:

在此处输入图像描述

我应该怎么做才能实现这个目标?

df<-structure(list(Name = c("LABCPCM01", "TUNISCN02", "HONORCN01", 
"KUCCLCN02", "LABCPBF03", "LABCPBF04", "MFHLBCM01", "MFHLBCF01", 
"DRLLBCN01", "QDSWRCN03", "QDSWRCN04", "UTSWLHN01", "MGHCCBN02", 
"JHDPCHM01", "UNILBCF03", "UTSWLGN03", "PHCI0CN01", "PHCI0CN02"
), ID = c("LABCP", "TUNIS", "HONOR", "KUCCL", "LABCP", "LABCP", 
"MFHLB", "MFHLB", "DRLLB", "QDSWR", "QDSWR", "UTSWL", "MGHCC", 
"JHDPC", "UNILB", "UTSWL", "PHCI0", "PHCI0")), row.names = c(NA, 
-18L), class = c("tbl_df", "tbl", "data.frame"))

标签: r

解决方案


怎么样:

R> df <- data.frame(f1=as.factor(c("LABCPCM01","TUNISCN02", "HONORCN01", "KUCCLCN02"))) 
R> tidyr::separate(df, f1, sep=c(5,6,7), into=c("ID", "var3", "var2", "var1"))


     ID var3 var2 var1 
1 LABCP    C    M   01 
2 TUNIS    C    N   02 
3 HONOR    C    N   01 
4 KUCCL    C    N   02

推荐阅读