【发布时间】:2018-11-24 06:41:57
【问题描述】:
我想对“R”中的多个数据帧应用相同的操作,但不知道如何处理这个问题。
这是dplyr中pipe操作的示例:
library(dplyr)
iris %>% mutate(Sepal=rowSums(select(.,starts_with("Sepal"))),
Length=rowSums(select(.,ends_with("Length"))),
Width=rowSums(select(.,ends_with("Width"))))
iris2 <- iris
iris3 <- iris
您能否建议如何将相同的管道函数应用于iris、iris2 和isis3?我需要使用dplyr管道操作。
我想map 函数可能会有所帮助,但由于我还没有完全理解它的概念,所以我在应用它时遇到了错误。
示例脚本:
library(purrr)
iris.set <- c(iris,iris2,iris3)
map(iris.set, ~ . %>% mutate(Sepal=rowSums(select(.,starts_with("Sepal"))),
Length=rowSums(select(.,ends_with("Length"))),
Width=rowSums(select(.,ends_with("Width")))))
【问题讨论】:
-
进行以下更改:
iris.set <- list(iris,iris2,iris3)map(iris.set, ~ .x %>% mutate(Sepal=rowSums(select(.,starts_with("Sepal"))), Length=rowSums(select(.,ends_with("Length"))), Width=rowSums(select(.,ends_with("Width"))))) -
@CPak 太好了!所以如果我需要单独保留这些数据框,我需要取消列出
iris.set? -
单独保存是什么意思?
-
我的意思是结果列表包含 3 个数据框,
iris、iris2和iris3。我需要它们返回 3 个数据帧,再次存储在data.frame,而不是list。我为这个特定问题创建了新帖子。 stackoverflow.com/questions/50860018/…
标签: r dplyr data-manipulation tidyverse