我对R中的列表使用相当新,并有一个快速问题,也使用purrr
involes。下面的示例数据帧太小。如何使用purrr与dplyr过滤列表元素和导出列表到Excel
Client1 <- c("John","Chris","Yutaro","Dean","Andy")
Animals <- c("Cat","Cat","Dog","Rat","Bird")
Living <- c("House","Condo","Condo","Apartment","House")
Data1 <- data.frame(Client1,Animals,Living)
Client1 <- c("John","Chris","Yutaro","Dean","Andy")
Animals2 <- c("Cat","Dog","Dog","Rat","Cat")
Living2 <- c("House","Apartment","Apartment","Family","Apartment")
Data2 <- data.frame(Client1,Animals2,Living2)
奖金,如果你能包括:如何以代替一次使用下面的两行重新命名列表中的元素:
names(Data1)[1:3] <- c("Client","Animals","Living")
names(Data2)[1:3] <- c("Client","Animals","Living")
所以下次如果我想通过Animals
过滤每一个数据帧,然后导出每个成通过使用两行代码下面的Excel电子表格:
Data1 %>% filter(Animals=="Cat") %>% write.csv(.,file="Data1.csv")
Data2 %>% filter(Animals=="Cat") %>% write.csv(.,file="Data2.csv")
然而,为了更有效的我可以加入两个数据帧到list
并使用purrr
来同时过滤每个。
DataList <- list(Data1,Data2)
DataList %>% map(~filter(.,Animals=="Cat"))
对于上面的代码,我会用多~filter
线每一个动物,所以不知道是否有这将避免而仍然使用purrr
和dplyr
编写很多代码不同行更有效的方法?
另外,如何使用write.csv
和purrr
。我可以将列表导出到一个电子表格中,但我不确定如何分解列表以便正确导出。另外,我可以将每个列表元素导出到单独的电子表格中。很高兴看到这两种情况的解决方案。
最终结果是你想为每个数据集中的每种动物分别使用csv文件吗?在你的真实情况下,你的数据集是否类似(即它们包含相同的变量)? – aosmith