Я пытаюсь прочитать несколько файлов из папки и объединить их в один большой фрейм данных.Я хотел бы, чтобы новый фрейм данных имел столбец, который определяет, из какого файла он поступает, в моем случае, год, который является частью имени файла.
require(data.table)
filelist <- list.files(path="mywd")
df <- data.frame()
for (i in 1:length(filelist)){
tempdata <-fread(filelist[i], stringASFactors = FALSE, colClasses = list(character = 13))
setattr(tempdata,'YEAR', c(i+2002))
df <- rbindlist(list(df, tempdata), use.names = T, idcol = "YEAR")
}
Я получаю несколько ошибок, говорящих:
Принимая input = как системную команду ('имя файла') и переменная была использована в выражении, переданном input=
.Пожалуйста, используйте fread (cmd = ...) .Существует проблема безопасности, если вы создаете приложение, и приложение может передать злонамеренного пользователя, и приложение не работает в защищенной среде;Например, приложение работает от имени пользователя root.Пожалуйста, прочитайте пункт 5 в файле NEWS для v1.11.6 для получения дополнительной информации и для возможности подавления этого сообщения.
Я не знаю, где искать NEWS и не может работать опция cmd,Имена файлов выглядят как «ГГГГ один два три с four.dsv». Заранее благодарю за помощь!:)
ОБНОВЛЕНИЕ Я немного поиграл с опцией cmd для fread () .Мне не удалось решить мою проблему, но, возможно, я в правильном направлении.
Пытаюсь приспособиться к имени файла с пробелами "YYYY один два три с four.dsv"
require(data.table)
filelist <- list.files(path="mywd")
df <- data.frame()
for (i in 1:length(filelist)){
tempdata <-fread(sprintf('%4d one two three with four.dsv', i+2002), stringASFactors = FALSE, colClasses = list(character = 13))
setattr(tempdata,'YEAR', c(i+2002))
df <- rbindlist(list(df, tempdata), use.names = T, idcol = "YEAR")
}
Что дает новое сообщение об ошибке для каждого года:
'2003' не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.
И warnings () говорят, что выполнение не удалось с кодом ошибки 1.