r - 按列中的条件总结 - R 中的数据框
问题描述
df <- data.frame(var1=c('a','a','a','c','d','c'),var2=c('kk','kk','ll','bb','bb','bb'),var3=c(1,1.4,2,2,5.1,3.2))
df
var1 var2 var3
1 a kk 1
2 a kk 1.4
3 a ll 2
4 c bb 2
5 d bb 5.1
6 c bb 3.2
#I want df to look like this
df
var1 var2 sum
1 a kk 2.4
2 a ll 2
3 c bb 5.2
4 d bb 5.1
当它们var1
具有相同的值时,var2
它们应该总结起来。因此,例如所有具有作为值的a
( )加起来。我完全一无所知,但尝试过。显然我错过了说明应该总结什么()。var1
kk
var2
sapply(split(df$var1,df$var2), sum)
var3
谢谢你的建议
解决方案
使用数据表:
df <- data.frame(var1=c('a','a','a','c','d','c'),var2=c('kk','kk','ll','bb','bb','bb'),var3=c(1,1.4,2,2,5.1,3.2))
library(data.table)
DT <- as.data.table(df)
DT[, .(sum = sum(var3)), by = .(var1, var2)]
使用 dplyr:
df <- data.frame(var1=c('a','a','a','c','d','c'),var2=c('kk','kk','ll','bb','bb','bb'),var3=c(1,1.4,2,2,5.1,3.2))
library(dplyr)
df %>% group_by(var1, var2) %>% summarize(sum = sum(var3))
输出:
var1 var2 sum
1: a kk 2.4
2: a ll 2.0
3: c bb 5.2
4: d bb 5.1
推荐阅读
- vba - 对于范围内的每个单元格,如果单元格值不为空,则 vlookup
- android - Xamarin.Android 卡片视图高度未显示
- java - 使用 Java 应用程序时阻止访问应用程序
- javascript - 谷歌地图用标记显示最近的公园
- f# - F# WebApi Cors 不起作用
- linux - 使用 bash 将命令的每一行转储到不同的变量中
- node.js - google-api-nodejs-client 出错
- javascript - JQuery each() 第二次不工作
- python - Python3 + jQuery-File-Upload 直接上传s3 | 方法不允许 405
- jquery - Aframe 奇怪的触发器问题