我的数据文件没有任何列分类,而row1如下所示:
AB365960091120112011311260000005311300000001ES020000040036ES1400N
我知道1到8个数据中的字符表示ID,9到15表示出生年份,16到28表示死亡年份等。如何根据字符位置单独创建表格?指示ID =从1到8的字符的方式是什么,例如在R语言中?
我希望我的桌子看起来像这样:
ID birth date death date
AB36596 9112011 201131126
答案 0 :(得分:1)
您可以使用read_fwf
包中的readr
。
library(readr)
library(dplyr)
df <- read_fwf(file = "test.txt", fwf_widths(c(9, 7, 9))) %>%
`colnames<-`(c("id", "birth date", "death date"))
df
输出为:
id `birth date` `death date`
1 AB3659600 9112011 201131126
示例数据:
test.txt
AB365960091120112011311260000005311300000001ES020000040036ES1400N
答案 1 :(得分:0)
这是一个基于你的例子的解决方案:
输入数据:
x<-"AB365960091120112011311260000005311300000001ES020000040036ES1400N"
拆分每个变量中的字符串并将其添加到data.frame
中df<-data.frame(ID=substr(x,1,7),
birth_date=substr(x,10,16),
death_date=substr(x,17,25))
您想要的输出
df
ID birth_date death_date
1 AB36596 9112011 201131126
使用相同的方法和substr
功能,您将能够提取所有信息。