Создать фрейм данных из списка в Rproj - PullRequest
0 голосов
/ 30 августа 2018

У меня есть проблема, которая действительно меня беспокоит: в последнее время я пытался преобразовать в Rproj, потому что я хотел бы сделать свои данные и скрипты доступными в какой-то момент. Но с одним из них я получаю ошибку, которая, я думаю, не должна возникать. Вот крошечный код, который доставляет мне столько хлопот. R.proj доступен по адресу: https://github.com/fredlm/mockup.

    library(readxl)
list <- list.files(path = "data", pattern = "file.*.xls") #List excel files

#Aggregate all excel files
df <- lapply(list, read_excel)
for (i in 1:length(df)){
  df[[i]] <- cbind(df[[i]], list[i])
}
df <- do.call("rbind", df)

Это дает мне следующую ошибку сразу после "df <- lapply (list, read_excel)": </p>

Ошибка в read_fun (путь = путь, лист = лист, пределы = пределы, прокладка = shim,: path [1] = "file_1.xls": такого файла или каталога нет

Знаете почему? Когда я делаю это в старой школе, то есть, используя setwd перед созданием списка, все работает просто отлично. Так что похоже, что lapply не знает, где искать файл при использовании в Rproj, что выглядит очень странно ...

Что я пропустил?

Спасибо:)

1 Ответ

0 голосов
/ 15 ноября 2018

Благодаря не-пакетному цвету, решение было найдено. Это глупо, но в «списке» не было каталога, поэтому lapply не мог объединить данные. Следующее работает просто отлично:

list <- paste("data/", list.files(path = "data", pattern = pattern = "file.*.xls"), sep = "") #List excel files
...