Я создаю объект, вызывающий все .csv
файлы в каталоге, считываю их в соответствии с некоторыми спецификациями и объединяю их.
Прежде чем объединить их, я хочу взять первые две буквы имен файлов и создать новый столбец в каждой таблице, сообщая об этих двух буквах как переменную.
Я получил это далеко:
temp = list.files(pattern="*.csv")
myfiles = lapply(temp, function(x) read.csv(x,
header=TRUE,
#sep=";",
stringsAsFactors=F,
encoding = "UTF-8",
na.strings = c("NA",""),
colClasses=c("code"="character")))
myfiles.final = do.call(rbind, myfiles)
Когда я пытаюсь создать новую переменную, хотя я генерирую замену, которая содержит двойные строки данных:
temp.2 <- lapply(temp, function(x) substr(x, start = 1, stop = 2))
myfiles.2 = lapply(myfiles,
function(x){
a <- temp.2[seq_along(myfiles)]
x$identifier <- rep(a,nrow(x))
return(x)
})
В папке имена файлов, например AA029893.csv
, BB024593.csv
..., для первой таблицы я просто хочу новый столбец с именем «identifier», который имеет «AA» для всех записей, для второго «BB» и т. Д.
Спасибомного