我在一行中有一大块数字需要拆分成多列。
一个例子是:
P040120000000000000000001001101210000000120000000000
前三个数字是一个类别,接下来是接下来的九个,依此类推。我无法找到将其拆分为多列或数据框的方法。我是R的新手,所以我会尽力跟上回复。谢谢!
答案 0 :(得分:1)
如果要提取的模式总是000 000000000 000000000 000000000 000000000 000000000 0000...
,那么这里是一种非常古老的方式在R中执行此操作
请注意,模式是3,9,9,9,9,y,其中y是不适合9个字符的字符串。另请注意,这可以用于长度超过52的字符串。
x<-"P040120000000000000000001001101210000000120000000000"
[1] "P040120000000000000000001001101210000000120000000000"
这里的字符串是"P040120000000000000000001001101210000000120000000000"
,你想在不同的列中以这种方式提取它
P04 012000000 000000000 000100110 121000000 00000
library(stringr)
x<-"P040120000000000000000001001101210000000120000000000"
Column1<-str_sub(x,1,3)
sub<-str_sub(x,4, nchar(x))
st<-1
en<-9
nchar(sub)
C<-as.character()
while (en!=nchar(sub)-(nchar(sub)%%9) )
{
C<-cbind(C, str_sub(sub,st,en))
st<-en+1
en<-en+9
}
C<-cbind(C,str_sub(sub,en, nchar(sub)))
D<-data.frame(cbind(Column1,C))
D
Column1 V2 V3 V4 V5 V6
1 P04 012000000 000000000 000100110 121000000 00000