Send and read SEO data to Excel/CSV

CSV and Excel file remain one of amongst the most well-used file formats for exchange data.

Read your data from a CSV

#setup where to read the file
setwd("~/Desktop")
# en write the file
test <- read.csv(df, "data.csv")

Export your data into a CSV

assuming your data is store inside df var, fairly simple:

#setup where to write the file
setwd("~/Desktop")
# en write the file
write.csv(df, "data.csv")

Read an excel

# the file.choose() will prompte a file selector
# the 1 say we want to load the first tab
test <- xlsx::read.xlsx(file.choose(),1)

Export your data into an excel file

A little bit more complex, we’ll use the ‘xlsx’ package

#setup where to write the file
setwd("~/Desktop")
 
# if the package is not instal yet, run this  
# install.packages("xlsx")
 
# Loading the package 
library(xlsx)
 
# we write the file 
write.xlsx(df, "data.xlsx")

A few more tips for you:

I’ll like to use the sheetName option to explicitly name the tab. The default name is “Sheet1”. Quite useful to have a record of when the file has been generated for example. Replace last instruction what follows and you’ll be able to know.

write.xlsx(df, "data.xlsx", sheetName=format(Sys.Date(), "%d %b %Y"))

Another good one that I like is to send the excel file to a Shared folder directly. Replace first instruction by

setwd("/Users/me/Dropbox/Public")

Of course, replace the file path with yours.

Import and merge a batch of CSV files

Aggregate several CSV files into one using file name as a column

library(plyr)
library(readr)
library(purrr)

# add the path where the csv's are located
setwd("./Downloads/test/")

# list csv files inside the directory
# for each: import the csv (read.csv function)
# add filename as a column
# and merge

Tbl <- list.files(path = "./",
                  pattern="*.csv", 
                  full.names = T) %>% 
                  map_df(function(x) read_csv(x, col_types = cols(.default = "c")) %>%
                  mutate(filename=gsub(".csv","",basename(x)))) 


View(Tbl)

Last updated