我想按组将数据框写入单独的文件中,但同时我不希望文件中有包含组信息的列.
例如,在下面的代码中,我不希望在每个单独的文件中都有Gear列.
library(dplyr)
mtcars |>
group_by(gear) |>
do(write.table(., paste0(unique(.$gear), "_.txt"),
sep = "\t", row.names = F, col.names = F))
有什么主意吗?谢谢.
我想按组将数据框写入单独的文件中,但同时我不希望文件中有包含组信息的列.
例如,在下面的代码中,我不希望在每个单独的文件中都有Gear列.
library(dplyr)
mtcars |>
group_by(gear) |>
do(write.table(., paste0(unique(.$gear), "_.txt"),
sep = "\t", row.names = F, col.names = F))
有什么主意吗?谢谢.
我们可以用‘Gear’列来表示split
,并使用imap
来循环指定的list
以进行写入
library(dplyr)
library(purrr)
mtcars %>%{
split(.[-10], .$gear)
} %>%
imap(~ write.table(.x, paste0(.y, "_.txt"),
sep = "\t", row.names = FALSE, col.names = FALSE))
如果要在写入后返回数据集,也可以使用group_modify
mtcars %>%
group_by(gear) %>%
group_modify(~ {
write.table(.x, paste0(.y, "_.txt"),
sep = "\t", row.names = FALSE, col.names = FALSE)
.x})