如何在函数内编写函数将对象保存为分离的csv文件?

时间:2017-08-21 03:22:01

标签: r function loops for-loop apply

我的功能如下:

v2_city <- 
        function(city_name){
                result <- v2[city == city_name]
                result
}

v2_city是一个包含“city_name”,“offers”列的数据集。 我想创建一个过滤函数来保存作为对象分隔的过滤数据,并最终将它们保存为csv文件。

为此,我在列表中创建了城市名称,并希望使用for循环,如下所示:

list <- c(
'Osaka'
,'Paris'
,'Roma'
,'Barcelona'
,'Fukuoka'
,'Hong Kong')

for (item in list){
        x <- v2[item]
}

这会将x文件过滤为HongKong。如何将所有单独的文件保存为对象,然后将它们写入循环中的csv?

1 个答案:

答案 0 :(得分:1)

怎么样?

library(dplyr)
library(readr)

my_dataset = tibble(city = c("Osaka","Paris","Roma","Barcelona","Fukuoka","Hong Kong"), value = 1:6)

cities = c("Osaka","Paris","Roma","Barcelona","Fukuoka","Hong Kong")

for (j in 1:length(cities){
  my_dataset %>% 
    filter(city == cities[[j]]) %>% 
    write_csv(paste0(cities[[j]],".csv"))
}