Разбиение строк на новые переменные - PullRequest
0 голосов
/ 30 августа 2018

У меня есть этот 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")
     )

из которого я хотел бы сгенерировать

ОБЛАСТЬ как первая часть ГОДОВОГО

ИНДИКАТОР как вторая часть ГОДОВОГО

ИНДУС как третья часть ГОДОВОГО

Я пытался использовать strsplit с [.] Для разделения, но это не сработало. Кроме того, когда будут готовы значения в X2010, я хотел бы извлечь значение (перед знаком #), а затем создать новую переменную cONF с тем, что следует после # (но здесь, я думаю, я мог бы использовать тот же прием, что и для ANNUAL). Спасибо за вашу помощь

1 Ответ

0 голосов
/ 30 августа 2018

Здесь вы можете использовать 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
...