R 使用Lappy解析生成CSV的数据帧
我正在尝试获取数据帧并将其发送到.csv文件。下面是我使用dput(df)的示例数据:R 使用Lappy解析生成CSV的数据帧,r,csv,R,Csv,我正在尝试获取数据帧并将其发送到.csv文件。下面是我使用dput(df)的示例数据: df这里有一个解决方案: 由于您只想使用函数来处理其副作用(写入文件),并且不需要返回任何值,因此软件包中的walk函数适用于以下情况: Map(write.csv,split(df,df$code),filename2).Wow-Map正是我需要的。谢谢因此,用谷歌搜索术语Map是相当困难的。在本例中,如何使用row.names=FALSE?write\u csv函数(不要与write.csv混淆)从不写
df这里有一个解决方案:
由于您只想使用函数来处理其副作用(写入文件),并且不需要返回任何值,因此软件包中的walk函数适用于以下情况:
Map(write.csv,split(df,df$code),filename2)
.Wow-Map正是我需要的。谢谢因此,用谷歌搜索术语Map
是相当困难的。在本例中,如何使用row.names=FALSE
?write\u csv
函数(不要与write.csv
混淆)从不写入行名。注意:write\u csv
是来自readr
软件包的一个tidyverse函数,速度大约是write.csv
的2倍。如果您想使用write.csv
,只需将row.names=FALSE
作为参数传递,就像这样…paste0(x,“_file.csv”),row.names=FALSE)}
您说得对,我把它们弄混了。我还希望列名是假的。你的解决方案太完美了!
df <- structure(list(ident = 1:35, code = structure(c(1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L,
4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L), .Label = c("A",
"B", "C", "D", "E", "F"), class = "factor"), Desc = structure(c(3L,
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L,
3L, 1L), .Label = c("lax", "mia", "nyc"), class = "factor")), .Names = c("ident",
"code", "Desc"), class = "data.frame", row.names = c(NA, -35L
))
filename <- levels(df$code)
filename2 <- paste0(filename, "_file.csv")
library(tidyverse)
walk(unique(df$code), function(x) {write_csv(df %>% filter(code == x), paste0(x, "_file.csv"))})