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. 总结
总结而言,利用count
和aggregate
可以很方便的帮助我们整理数据,将重复出现的变量归到一起进行计算。
网友评论