我在一行中有一大块数字,我需要将其拆分成多列。
下面是一个例子:
P040120000000000000000001001101210000000120000000000前三个数字是一个类别,接下来是九个,以此类推。我想不出一种方法来将它分成多个列或一个数据帧。我是R的新手,所以我会尽我最大的努力跟上大家的反应。谢谢!
发布于 2015-12-30 16:43:59
如果要提取的模式总是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 00000https://stackoverflow.com/questions/34523851
复制相似问题