【发布时间】:2020-05-29 17:21:38
【问题描述】:
我将以两个文件为例来解释我的问题。
我有多个文本文件,如下所示:
### First file
GEORGIA file name first row not use
Col1 Col2
A 2
A 4
A 5
B 2
B 6
### Second file
New York file name first row not use
Col1 Col2
C 2
C 4
D 5
E 2
F 6
我使用data.table 导入文本文件,然后提取我想要的信息。
library(data.table)
my_read_data <- function(x){ data <- data.table::fread(x, header = T, strip.white = T, fill = T, skip = 1) }
file.list <- dir(path = "C:/Users/filesnames/", pattern='\\.txt', full.names = T)
dt.list <- sapply(file.list, my_read_data, simplify=FALSE)
cd <- rbindlist(dt.list, idcol = 'id')[, FileNo := substr(id, 24, 25)]
结果如下:
Col1 Col2 FileNo
A 2 1
A 4 1
A 5 1
B 2 1
B 6 1
C 2 2
C 4 2
D 5 2
E 2 2
F 6 2
然而,我真正想要的是:
Col1 Col2 FileNo Name
A 2 1 GEORGIA
A 4 1 GEORGIA
A 5 1 GEORGIA
B 2 1 GEORGIA
B 6 1 GEORGIA
C 2 2 New York
C 4 2 New York
D 5 2 New York
E 2 2 New York
F 6 2 New York
由于我跳过了第一行,所以我无法从here 找到的第一行中提取单词。
但如果我没有删除第一行,它会错误地导入。
文本文件显示如下:
### First file
GEORGIA file name first row not use
Col1,Col2
A,2
A,4
A,5
B,2
B,6
### Second file
New York file name first row not use
Col1,Col2
C,2
C,4
D,5
E,2
F,6
【问题讨论】:
标签: r import data.table data-manipulation