将字符串拆分为新变量

时间:2018-08-30 09:52:11

标签: r string split data.table

我有这个数据表(摘录)

 DT <- data.table(ANNUAL = c("HR.PREN.B","HR.PREN.B06","HR.PREN.B081"),
       X2010 = c("102.1","121.2","92.5#s")
     )
我要从中生成的

AREA作为年度报告的第一部分

INDIC作为年度第二部分

INDUS作为ANNUAL的第三部分

我尝试将strsplit与[。]一起使用进行拆分,但无法解决。 此外,当准备好X2010中的值时,我想提取值(在#号之前),然后使用#号之后的内容创建一个新的变量cONF(但在这里我想我可以使用与ANNUAL相同的技巧)。 谢谢您的帮助

1 个答案:

答案 0 :(得分:0)

这是在tidyverse对象中使用data.table的选项

library(tidyverse)
setDT(DT[, .SD %>% 
             separate(ANNUAL, into = c("AREA", "INDIC", "INDUS")) %>%
             mutate(cONF = str_remove(X2010, "#.*"))])[]
#   AREA INDIC INDUS  X2010  cONF
#1:   HR  PREN     B  102.1 102.1
#2:   HR  PREN   B06  121.2 121.2
#3:   HR  PREN  B081 92.5#s  92.5