Write & Read CSV File as data.table in R (2 Examples)
In this article, you’ll learn how to export a data.table as a CSV file and how to import a CSV file as a data.table in the R programming language. You are not familiar with data.table in R? Have a look at our blog post about data.table here. There are also numerous posts about data.table on Stack Overflow.
The article will consist of the following contents:
Let’s dive into it:
Example Data & Add-On Packages
We first need to install and load the data.table package to RStudio:
install.packages("data.table") # Install & load data.table library("data.table") |
install.packages("data.table") # Install & load data.table library("data.table")
We’ll also have to create some example data:
dt_1 <- data.table( Var1 = 1:200, # Generate example data Var2 = rep(month.abb[1:10], 20), Var3 = seq(0, 1, length.out = 200) ) head(dt_1) # Print head of data |
dt_1 <- data.table( Var1 = 1:200, # Generate example data Var2 = rep(month.abb[1:10], 20), Var3 = seq(0, 1, length.out = 200) ) head(dt_1) # Print head of data
Have a look at the previous table. It visualizes the top six lines of our example data, and that our data contains three columns. For the data creation we used some functions. Find out more about the sequence function seq() here and the month names month.abb[] here.
To save and load the data, we define a path in the following. You can change it to a path of your choice, e.g. the download folder.
path <- "C:/Users/..." # Set the path where you want to store the example data |
path <- "C:/Users/..." # Set the path where you want to store the example data
Example 1: Save data.table as CSV
Example 1 demonstrates how to export the previously defined data.table dt_1 as a CSV file using write.csv(). With argument file = “…” you determine where the data is stored.
?write.csv # Show help file write.csv(dt_1, # Save data as CSV file file = paste0(path, "test_csv_file.csv")) |
?write.csv # Show help file write.csv(dt_1, # Save data as CSV file file = paste0(path, "test_csv_file.csv"))
Look at the path folder which you defined. There you can now see the CSV file. Take a look at the documentation of write.csv() if you want to e.g. change the decimal point from “.” to “,” and for further options.
Example 2: Load CSV as data.table
This example shows how to import the saved CSV file as a data.table in R with function read.csv(). Again, make sure you set path to the folder where your CSV file is stored.
loaded_data <- read.csv(file = paste0(path, "test_csv_file.csv")) |
loaded_data <- read.csv(file = paste0(path, "test_csv_file.csv"))
The CSV file is imported as loaded_data. Take a look at the class of the file.
class(loaded_data) # Get object class # [1] "data.frame" |
class(loaded_data) # Get object class # [1] "data.frame"
It is a data.frame. To convert it to a data.table, use the following command setDT().
setDT(loaded_data) # Transform to data.table class(loaded_data) # Get object class # [1] "data.table" "data.frame" |
setDT(loaded_data) # Transform to data.table class(loaded_data) # Get object class # [1] "data.table" "data.frame"
As a result: The CSV file was loaded in R and is now a data.table object.
Video & Further Resources
I have recently published a video on my YouTube channel, which illustrates the R syntax of this tutorial. You can find the video below:
The YouTube video will be added soon.
In addition, you might read some related posts on this website.
- sink Function in R
- Write & Read Multiple CSV Files Using for-Loop
- Extract data.table Column as Vector Using Index Position
- Read TXT File with Spaces as Delimiter
- All R Programming Tutorials
In this article, you have learned how to save a data.table as a CSV file and how to load a CSV file as a data.table in R. Please let me know in the comments section, in case you have additional questions. Furthermore, please subscribe to my email newsletter to get updates on the newest tutorials.
This page was created in collaboration with Anna-Lena Wölwer. Have a look at Anna-Lena’s author page to get further details about her academic background and the other articles she has written for Statistics Globe.