当使用for循环将数据帧作为子集时,如何将数据帧写入csv
在使用For循环将数据子集之后,我想自动写入每个数据帧的.csv。这可能发生在我的for循环中,也可能是一个单独的循环,我只是不知道如何进行 我希望每个csv文件的命名也基于数据帧的名称当使用for循环将数据帧作为子集时,如何将数据帧写入csv,r,R,在使用For循环将数据子集之后,我想自动写入每个数据帧的.csv。这可能发生在我的for循环中,也可能是一个单独的循环,我只是不知道如何进行 我希望每个csv文件的命名也基于数据帧的名称 for (i in FILENAME$COLUMN) { nam <- paste("NEW_FILENAME", i, sep = "_") assign(nam, FILENAME[ FILENAME$COLUMN==i,]) } for(文件名$COLUMN中的i){ nam尝试使
for (i in FILENAME$COLUMN) {
nam <- paste("NEW_FILENAME", i, sep = "_")
assign(nam, FILENAME[
FILENAME$COLUMN==i,])
}
for(文件名$COLUMN中的i){
nam尝试使用apply
family执行此操作,而使用split
的帮助,它将为您拥有的每个唯一列
值创建数据帧列表。因此,您可以创建不同的数据帧,也可以仅在一个命令中将它们写入不同的csv
文件中
例如,使用mapply
可以
mapply(function(x, y)
write.csv(x, paste0("path_of_file/NEW_FILENAME_", y, ".csv"), row.names = FALSE),
split(FILENAME, FILENAME$COLUMN), seq_along(unique(FILENAME$COLUMN)))
这适用于mtcars
dataset,其中我基于cyl
列创建单独的数据帧
mapply(function(x, y)
write.csv(x, paste0("NEW_FILENAME_", y, ".csv"), row.names = FALSE),
split(mtcars, mtcars$cyl), seq_along(unique(mtcars$cyl)))
如果只想编写文件,可以使用tidyverse
解决方案。例如,使用mtcars
dataset:
library(tidyverse)
mtcars %>%
group_by(gear, carb) %>%
do(
write_csv(., sprintf("new_mtcars_g%s_c%s.csv", .$gear[1], .$carb[1]))
) %>%
invisible()