0
我有一個行號,我需要拆分成多列的一大塊。拆分數據爲列
一個例子是:
P040120000000000000000001001101210000000120000000000
前三個號碼是一類,接着是下9,等等等等。我很難找出將其分成多個列或數據框的方法。我是R新手,所以我會盡我所能跟上答案。謝謝!
我有一個行號,我需要拆分成多列的一大塊。拆分數據爲列
一個例子是:
P040120000000000000000001001101210000000120000000000
前三個號碼是一類,接着是下9,等等等等。我很難找出將其分成多個列或數據框的方法。我是R新手,所以我會盡我所能跟上答案。謝謝!
如果要提取的模式總是000 000000000 000000000 000000000 000000000 000000000 0000...
那麼這是一個非常老式的方式在R做這個。 請注意模式是3,9,9,9,9,y其中y是那些字符串don不適合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
類型爲nchar( )你的字符串總是52? – MaxPD
您可以使用'read.fwf'並指定'widths'。它跟隨3,9,3,9,3,9等嗎? – akrun
他的字符串不符合:3,9,3,9,3 ....'P04 012000000 000 000000000 100 110121000 000 012000000 000 0'。他的字符串也不一致:3,9,9,9,9 ....'P04 012000000 000000000 000100110 121000000 012000000 0000' – MaxPD