R将数据框内相同变量的数据相加

Liang / 2018-11-24


1. 问题 #

有的时候从原始数据读入到R中的数据会有很多的重复数据,并没有进行数据合并,对于后续的处理中会造成麻烦,因为R处理这种数据的时候会只取用第一次出现的结果。处理这个问题有很多方法,记录如下。

2. 解决 #

首先建立一个数据框,用来测试我们的方法:

bevs <- data.frame(cbind(name = c("Bill", "Llib"), drink = c("coffee", "tea", "cocoa", "water"), cost = seq(1:8)))
bevs$cost <- as.integer(bevs$cost)
bevs

bevs数据结构

下面利用plyr 包里面的count 函数进行相加

library(plyr)
count(bevs, "name")

name出现的次数 同时统计两列,结果如下:

count(bevs, c("name", "drink"))

name和drink统计

如果想知道Bill和Llib在不同drink上花费的钱是多少呢?可以使用 aggregate函数。

aggregate(cost ~ name + drink, data = bevs, sum)

统计name和drink下的cost 统计Bill和Llib的总花费

aggregate(cost ~ name, data = bevs, sum)

name的cost

3. 总结 #

总结而言,利用countaggregate可以很方便的帮助我们整理数据,将重复出现的变量归到一起进行计算。

最后一次修改于 2018-11-24