an2825
an2825

Reputation: 23

Getting error in file(file, "rt"): cannot open the connection

I am running the following code...

#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))

This is the error I get when I run do.call line above.

Error in file(file, "rt") : cannot open the connection

I've tried resetting my wd. My current getwd() is

~/R/natural-language-processing

I've looked through the other

Error in file(file, “rt”): cannot open connection

Upvotes: 2

Views: 36612

Answers (5)

user19398157
user19398157

Reputation: 15

If I can add something, I was having this same problem and the issue was a syncing problem with my cloud device. Saving my files on a local folder solved the problem.

Upvotes: 0

Evangelos Katsaros
Evangelos Katsaros

Reputation: 3

In my case, the problem was that inside the directory with the *.csv files was also another directory. As soon as I moved the directory from the folder, the specific error disappeared.

Upvotes: 0

user11486163
user11486163

Reputation: 1

I just spent a lot of time trying to understand what was wrong on my code too...

And it seems to be simple if you are using windows.

When you name your file "blabla.txt" then windows name it "blabla.txt.txt"... That's the same with .CSV files so windows create a file named "001.csv.csv" if you called it "001.csv"

So, when you create your .csv file, just rename it "001" and open it in R using read.table("/absolute/path/of/directory/with/required/001.csv")

It works for me.

Upvotes: 0

nothing
nothing

Reputation: 3290

Most likely you are trying to open files from the working directory instead of the directory in which you called list.files. Instead try

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

Alternatively, you can set the full.names argument to TRUE in list.files to get complete paths:

file.list <- list.files(path="~/R/natural-language-processing/class-notes", 
                        pattern=".csv", full.names = TRUE)

Upvotes: 8

LMunyan
LMunyan

Reputation: 116

read.csv is looking for the file names in your working directory. By changing your working directory to "C:/Users/Bob/Documents/R/natural-language-processing/class-notes", your code should work just fine.

Code:

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

Then re-run your code.

Upvotes: 1

Related Questions