如何以固定宽度分割文本数据并在R中指定列名?
我有一个文本数据如下 数据如何以固定宽度分割文本数据并在R中指定列名?,r,csv,R,Csv,我有一个文本数据如下 数据 V2 1 12384793849384u39840598093580985309580359803958035 2 55132531453215532532523451325235324521435132523452 3 52353251253253245132444444444444553241524351243532 4 23515123532532512345214512345213551253245432542135 5 23532115124542
V2
1 12384793849384u39840598093580985309580359803958035
2 55132531453215532532523451325235324521435132523452
3 52353251253253245132444444444444553241524351243532
4 23515123532532512345214512345213551253245432542135
5 23532115124542352335122222222435451435143251234542
6 13245432543215214352152234513425234555512311235412
7 1327r6tr87t987rt38r7t93487y32987y3287y39o8r2y9874r
我有另一个密钥文件,如下所示
密钥文件
header startkey endkey
1 Claim Unique ID 0 12
2 Provider CCN Number 13 18
3 Beneficiary Hic Number 19 29
4 Claim Type Code 30 31
5 Claim From Date 32 41
所以,现在我想提取每行的0到12个字母,并将其分配给claim unique id变量,13到18个字母分配给provider ccn number变量,并以相同的方式分配给所有变量
预期产量
ClaimUniqueID ProviderCCNNumber BeneficiaryHicNumber ClaimTypeCode ClaimFromDate
132364748474 u74635 54673829273 87 7474747474
231763987435 123433 12353244513 23 1343434444
193274674474 143243 23342535435 23 1243213424
尝试
数据我认为以下方法应该有效(如果没有可复制的示例,很难判断)
keyfile
data <- read.fwf("cclf_text_file.txt",widths=10000)
keyfile = read.csv("cclf_key_file.csv",header = T)
fixed_length = function(input_data,key_file,output_data){
input_data[] = Map(substr,input_data[keyfile$header],keyfile$startkey, keyfile$endkey)
filename = paste(deparse(substitute(output_data)), ".csv",sep="")
write.csv(input_data,file = filename)
}
keyfile <- read.csv("cclf_key_file.csv",header = T)
data <- read.fwf("cclf_text_file.txt",widths=keyfile$endkey - keyfile$startkey + 1)
names(data)<-as.character(keyfile$header)