3.10 批量读取 csv 文件
iris 数据转化为 data.table 类型,按照 Species 分组拆成单独的 csv 文件,各个文件的文件名用鸢尾花的类别名表示
# 批量分组导出
library(data.table)
as.data.table(iris)[, fwrite(.SD, paste0("data/user_", unique(Species), ".csv")), by = Species, .SDcols = colnames(iris)]
读取文件夹 data/
所有 csv 数据文件
library(data.table)
<- do.call('rbind', lapply(list.files(pattern = "*.csv", path = "data/"), fread ) )
merged_df # 或者
<- rbindlist(lapply(list.files(pattern = "*.csv", path = "data/"), fread )) merged_df
$date <- as.Date(xdf$date)
xdf$ts <- as.POSIXct(as.numeric(xdf$ts), origin = "1978-01-01")
xdfsplit(xdf[order(xdf$ts), ], interaction(xdf$study, xdf$port)) %>%
lapply(function(.x) {
nrow(.x), ]
.x[%>%
}) unname() %>%
Filter(function(.x) {
nrow(.x) > 0
%>%
}, .) do.call(rbind.data.frame, .)
library(dplyr)
%>%
xdf mutate(
date = as.Date(date),
ts = anytime::anytime(as.numeric(ts))
%>%
) arrange(ts) %>%
group_by(study, port) %>%
slice(n()) %>%
ungroup()
library(tibble)
<- tibble(mtcars)
mtcars print(mtcars, n = 6, width = 69)
## # A tibble: 32 × 11
## mpg cyl disp hp drat wt qsec vs am gear carb
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
## 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
## 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
## 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
## 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
## 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
## # ℹ 26 more rows