Разбить столбец на несколько столбцов, а также предотвратить попадание нулей в разделенные столбцы. - PullRequest
2 голосов
/ 13 апреля 2020

Я разделяю столбец с кодами, разделенными точками (.) В одном столбце. Я разделяю этот столбец с помощью cSplit (), но затем столбцы автоматически преобразуются в цифры c (если есть числа), и ведущие нули удаляются. Например:

test_data<-data.frame(mastercode=".0006488.40007.40009.0003772.0000828.0000845.0000001.")

этот столбец мастер-кода может содержать коды, подобные этим, и количество кодов может варьироваться. Я делю это следующим образом:

split_data<-cSplit(test_data, "mastercode", ".") 

разделенный столбец теперь не имеет ведущих нулей. Есть ли какой-нибудь другой метод, который я могу использовать, где можно избежать сброса ведущих нулей.

Ответы [ 2 ]

1 голос
/ 13 апреля 2020

Мы можем использовать strsplit от base R

out <- do.call(rbind, strsplit(as.character(test_data$mastercode), "\\."))
1 голос
/ 13 апреля 2020

cSplit автоматически преобразует столбцы в соответствующие им типы, вы можете установить type.convert = FALSE, чтобы это не происходило.

splitstackshape::cSplit(test_data, "mastercode", ".", type.convert = FALSE) 

#   mastercode_1 mastercode_2 mastercode_3 mastercode_4 mastercode_5 mastercode_6 mastercode_7 mastercode_8
#1:                   0006488        40007        40009      0003772      0000828      0000845      0000001
...