3.5 批量导入数据
library(tidyverse)
<- function(list_of_datasets, read_func) {
read_list <- function(dataset, read_func) {
read_and_assign <- as.name(dataset)
dataset_name <- read_func(dataset)
dataset_name
}
# invisible is used to suppress the unneeded output
<- invisible(
output sapply(list_of_datasets,
read_and_assign,read_func = read_func, simplify = FALSE, USE.NAMES = TRUE
)
)
# Remove the extension at the end of the data set names
<- c(unlist(strsplit(list_of_datasets, "[.]"))[c(T, F)])
names_of_datasets names(output) <- names_of_datasets
return(output)
}
批量导入文件扩展名为 .csv
的数据文件,即逗号分割的文件
<- list.files(path = "path/to/csv/dir",
data_files pattern = ".csv", full.names = TRUE)
print(data_files)
相比于 Base R 提供的 read.csv
函数,使用 readr 包的 read_csv
函数可以更快地读取csv格式文件,特别是在读取GB级数据文件时,效果特别明显。
<- read_list(data_files, readr::read_csv) list_of_data_sets
使用 tibble 包的glimpse
函数可以十分方便地对整个数据集有一个大致的了解,展示方式和信息量相当于 str
加 head
函数
::glimpse(list_of_data_sets) tibble