Я запускаю следующий код ...

#Create a list of all the files
file.list <- list.files(path="~/R/natural-language-processing/class-notes", pattern=".csv")

#Loop over file list importing them and binding them together
D1 <- do.call("rbind",lapply(file.list, read.csv, header = TRUE, stringsAsFactors = FALSE))

Это ошибка, которую я получаю, когда запускаю строку do.call выше.

Ошибка в файле (file, "rt"): не удается открыть соединение

Я попытался сбросить мой wd. Мой текущий getwd()

~/R/natural-language-processing

Я просмотрел другой

Ошибка в файле (file, "rt"): не удается открыть соединение

2
an2825 4 Мар 2018 в 03:12

4 ответа

Лучший ответ

Скорее всего, вы пытаетесь открыть файлы из рабочего каталога, а не из каталога, в котором вы назвали list.files. Вместо этого попробуйте

D1 <- do.call("rbind",
              lapply(paste0("~/R/natural-language-processing/class-notes/",
                            file.list),
                     read.csv, header = TRUE, stringsAsFactors = FALSE))

Кроме того, вы можете установить аргумент full.names в TRUE в list.files, чтобы получить полные пути:

file.list <- list.files(path="~/R/natural-language-processing/class-notes", 
                        pattern=".csv", full.names = TRUE)
6
Richard Border 4 Мар 2018 в 00:48

В моем случае проблема заключалась в том, что внутри каталога с файлами * .csv был также другой каталог. Как только я переместил каталог из папки, конкретная ошибка исчезла.

0
Evangelos Katsaros 27 Янв 2020 в 14:31

Я просто потратил много времени, пытаясь понять, что не так в моем коде тоже ...

И это кажется простым, если вы используете Windows.

Когда вы называете свой файл «blabla.txt», тогда Windows называет его «blabla.txt.txt» ... То же самое относится и к файлам .CSV, поэтому Windows создает файл с именем «001.csv.csv», если вы назвали его «001». .csv »

Поэтому, когда вы создаете файл .csv, просто переименуйте его в «001» и откройте его в R, используя read.table («/ absolute / path / of / directory / with / required / 001.csv»)

Меня устраивает.

0
user11486163 11 Май 2019 в 17:48

Read.csv ищет имена файлов в вашем рабочем каталоге. Изменив свой рабочий каталог на «C: / Users / Bob / Documents / R / natural-language-processing / class-notes», ваш код должен работать просто отлично.

Код:

setwd("C:/Users/Bob/Documents/R/natural-language-processing/class-notes")

Затем перезапустите свой код.

1
LMunyan 4 Мар 2018 в 00:39