【发布时间】:2021-12-13 01:36:04
【问题描述】:
我使用 dyplr 的简单命令首先按两列过滤数据框,然后报告另一列的总和。但是,我想创建一个循环,以便过滤条件可以通过值列表自动执行。例如单个实例的代码:
library(dplyr)
df = data.frame(Category1 = sample(c("FilterMe","DoNotFilterMe"), 15, replace=TRUE),
Category2 = sample(c("1","3","5","10"),15, replace=TRUE),
Value = 1:15)
df %>%
filter(Category1=="FilterMe" & Category2="1") %>%
summarize(result=sum(Value))
这很好用,我得到一个值 15。但是我想循环命令,以便我可以为由整数列表(非连续)定义的 Category2 执行多个值。我希望它为 i 的每个值循环并每次提供不同的输出值。我尝试了下面的代码,但留下了一个空值。
library(dplyr)
for (i in c(1,3,5,10){
df %>%
filter(Category1=="FilterMe" & Category2="i") %>%
summarize(result=sum(Value))}
如果除了循环之外还有其他方法可以实现相同的目标,我觉得很好。
【问题讨论】:
标签: r loops for-loop dplyr filter