R子集和和和,无需求助于for循环
我有以下数据集:R子集和和和,无需求助于for循环,r,for-loop,subset,tidyverse,R,For Loop,Subset,Tidyverse,我有以下数据集: col1 col2 col3 col4 row1 x True Yes 0.4 row1 y False No 0.3 row1 z True Yes 0.5 其中,第1列到第3列有一组固定的值。我需要将这些固定值的所有可能组合子集,然后将第4列中剩余的金额相加。例如,如果我一次做一个,手动: subset1 <- data %>% fil
col1 col2 col3 col4
row1 x True Yes 0.4
row1 y False No 0.3
row1 z True Yes 0.5
其中,第1列到第3列有一组固定的值。我需要将这些固定值的所有可能组合子集,然后将第4列中剩余的金额相加。例如,如果我一次做一个,手动:
subset1 <- data %>%
filter(col1 == 'x' & col2== True & col3== 'Yes') %>%
pull(col4) %>%
sum
subset2 <- data %>%
filter(col1 == 'y' & col2== False & col3== 'No') %>%
pull(col4) %>%
sum
subset3 <- data %>%
filter(col1 == 'z' & col2== True & col3== 'Yes') %>%
pull(col4) %>%
sum
subset1%
筛选器(col1='x'&col2==True&col3=='Yes')%>%
拉力(col4)%>%
总和
2%以下
过滤器(col1='y'&col2==False&col3=='No')%>%
拉力(col4)%>%
总和
低于3%
过滤器(col1='z'&col2==True&col3=='Yes')%>%
拉力(col4)%>%
总和
但是,实际的数据集包含十几个列,每个列有一个固定的列表,每个列大约有十几个值。手动将这些代码子集将需要几百行几乎相同的代码。有没有办法用一个简单的函数生成这些子集表?类似于:
list1 <- c('x', 'y', 'z')
list2 <- c(True, False)
list3 <- c("Yes", "No")
f1 <- function(data, list1, list2, list3){
table <- timeline %>%
filter(col1 %in% list1 & col2 %in% list2 & col3 %in% list3) %>%
pull(col4) %>%
sum
}
list1您可以尝试下面的代码,看看它是否有效:
yourdf%
分组依据(列)%>%
汇总(新列=汇总(要汇总的列))
一定要让我们知道它是否有效!祝你好运澄清/更正更新:将其分配给新的df,而不是前面提到的yourdf。。。所以新的