R:写入 CSV 并通过管道继续
R: Write to CSV and continue through piping
有什么方法可以在一串管道 dplyr 函数中包含对 write.csv 的调用吗?
library(dplyr)
mtcars %>%
filter(cyl == 4) %>%
write.csv(file = "firstStage.csv") %>%
group_by(carb) %>%
summarise(hp.sum = sum(hp)) %>%
write.csv(file = "secondStage.csv")
我可以创建自己的函数:
csv2go <- function(x, ...) {
write.csv(x, ...)
x
}
但想知道在 base 或 dplyr 中是否有这样做的东西。也许 library(readr)
中的 write_csv()
函数可以采用这个选项?
您需要这样的东西吗?这就是我将 csvs 写入 HDFS 的方式。
write.csv(data, file=pipe("hadoop dfs -put - /tmp/test.csv"))
很简单!!!您需要做的就是添加一个字符 "T" 以将常规管道运算符 %>% 转换为 T 形管道运算符 %T>%,如下所示:
library(dplyr)
mtcars %>%
filter(cyl == 4) %T>% # <== Tee-pipe operator
write.csv(file = "firstStage.csv") %>%
group_by(carb) %>%
summarise(hp.sum = sum(hp)) %>%
write.csv(file = "secondStage.csv")
%T>% 是你的新朋友
有什么方法可以在一串管道 dplyr 函数中包含对 write.csv 的调用吗?
library(dplyr)
mtcars %>%
filter(cyl == 4) %>%
write.csv(file = "firstStage.csv") %>%
group_by(carb) %>%
summarise(hp.sum = sum(hp)) %>%
write.csv(file = "secondStage.csv")
我可以创建自己的函数:
csv2go <- function(x, ...) {
write.csv(x, ...)
x
}
但想知道在 base 或 dplyr 中是否有这样做的东西。也许 library(readr)
中的 write_csv()
函数可以采用这个选项?
您需要这样的东西吗?这就是我将 csvs 写入 HDFS 的方式。
write.csv(data, file=pipe("hadoop dfs -put - /tmp/test.csv"))
很简单!!!您需要做的就是添加一个字符 "T" 以将常规管道运算符 %>% 转换为 T 形管道运算符 %T>%,如下所示:
library(dplyr)
mtcars %>%
filter(cyl == 4) %T>% # <== Tee-pipe operator
write.csv(file = "firstStage.csv") %>%
group_by(carb) %>%
summarise(hp.sum = sum(hp)) %>%
write.csv(file = "secondStage.csv")
%T>% 是你的新朋友