Я буду использовать два файла в качестве примера для объяснения моего вопроса.
У меня есть несколько текстовых файлов, как показано ниже:
### 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
Поскольку я пропускаю первую строку, поэтому я не могу извлечь слова из первого ряда, где я нашел из здесь .
Но если я не удалил первый ряд, он импортирован неправильно.
Текстовый файл показывает как:
### 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