This error occurs if you try to write to a file in a directory that was not found by the R interpreter. You can solve this error by creating the directory using dir.create() or removing the missing directory from the file save path. For example,
x <- c(rnorm(10)) write(x, file="vector.txt", sep=",")
This tutorial will go through how to solve this error with code examples.
Example
Consider an example of a data frame containing the names, salaries, and start dates of five employees for a fictional company.
# Create the data frame. emp.data <- data.frame( emp_id = c (1:5), emp_name = c("Terry","Julia","Ryu","Sean","Kirthika"), salary = c(623.3,515.2,611.0,729.0,843.25), start_date = as.Date(c("2018-01-01", "2019-09-23", "2020-11-15", "2021-05-11", "2022-03-27")), stringsAsFactors = FALSE ) # Print the data frame. print(emp.data)
emp_id emp_name salary start_date 1 1 Terry 623.30 2018-01-01 2 2 Julia 515.20 2019-09-23 3 3 Ryu 611.00 2020-11-15 4 4 Sean 729.00 2021-05-11 5 5 Kirthika 843.25 2022-03-27
Next, we will try to save the data frame to a CSV using the write.table()
function:
write.table(emp.data, file="accounts/salaries.csv", sep="\t", row.names = FALSE)
Let’s run the code to see what happens:
Error in file(file, ifelse(append, "a", "w")) : cannot open the connection In addition: Warning message: In file(file, ifelse(append, "a", "w")) : cannot open file 'accounts/salaries.csv': No such file or directory
The error occurs because the directory “accounts
” does not exist as a subdirectory within our working directory.
We can check if a directory exists using the dir.exists()
function.
print(dir.exists("accounts"))
[1] FALSE
Solution
We can use the dir.create()
function to create the subdirectory to write the file. Let’s look at the revised code:
# Create the data frame. emp.data <- data.frame( emp_id = c (1:5), emp_name = c("Terry","Julia","Ryu","Sean","Kirthika"), salary = c(623.3,515.2,611.0,729.0,843.25), start_date = as.Date(c("2018-01-01", "2019-09-23", "2020-11-15", "2021-05-11", "2022-03-27")), stringsAsFactors = FALSE ) # Create directory dir.create("accounts/") # Check the directory exists print(dir.exists("accounts")) # Write the data frame to file write.table(emp.data, file="accounts/salaries.csv", sep="\t", row.names = FALSE)
[1] TRUE
Once we run the code the csv file can be found in the “accounts” subdirectory inside the working directory.
Summary
Congratulations on reading to the end of this tutorial!
For further reading on R-related errors, go to the articles:
- How to Solve R Error as.Date.numeric(x) : ‘origin’ must be supplied
- How to Solve R Error: invalid (do_set) left-hand side to assignment
- How to Solve R Error: plot.new has not been called yet
- How to Solve R Error: unexpected ‘}’ in “}”
Go to the online courses page on R to learn more about coding in R for data science and machine learning.
Have fun and happy researching!
Suf is a senior advisor in data science with deep expertise in Natural Language Processing, Complex Networks, and Anomaly Detection. Formerly a postdoctoral research fellow, he applied advanced physics techniques to tackle real-world, data-heavy industry challenges. Before that, he was a particle physicist at the ATLAS Experiment of the Large Hadron Collider. Now, he’s focused on bringing more fun and curiosity to the world of science and research online.