【发布时间】:2017-02-09 18:30:49
【问题描述】:
我想根据两列中的值来总结一个数据框,除了每一列实际上都有相同的变量而且我不在乎顺序是什么。这是一个示例数据框:
> df<-data.frame(val1=c(1,1,1,2,2), val2=c(1,2,2,1,1), val3=c(10, 20, 30, 40, 50))
> df
val1 val2 val3
1 1 1 10
2 1 2 20
3 1 2 30
4 2 1 40
5 2 1 50
我有兴趣总结val3,除了我只关心val1 和val2 的无序 组合。所以比如说我想治疗
val1 val2 val3
1 1 2 20
同
val1 val2 val3
1 2 1 40
我可以使用 dplyr 按列分组并总结如下:
> df %>% group_by(val1, val2) %>% summarize(mean=mean(val3))
Source: local data frame [3 x 3]
Groups: val1 [?]
val1 val2 mean
<dbl> <dbl> <dbl>
1 1 1 10
2 1 2 25
3 2 1 45
但我希望这个结果只包含两行!
我考虑过创建一个反映val1 和val2 组合的新变量,然后按此进行分组,但想不出一个简单的方法。 val1 和 val2 不一定是数字,也不一定是连续整数。
【问题讨论】: