如何解决R子集和求和,而不求助于for循环
我有以下数据集:
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
但是,实际的数据集包含十二个列,每个列都有大约十二个值的固定列表。手动设置这些子集将需要几百行几乎相同的代码。有没有一种方法可以通过简单的功能生成这些子表?类似于:
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
}
解决方法
您可能想尝试以下代码,看看它是否有效:
yourdf <- yourdf%>%
group_by(yourColumn)%>%
summarize(newColumn=sum(columnTobeSummed))
让我们知道它是否有效!祝你好运
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。