大数据人|大数据第一社区

 找回密码
 注册会员

扫一扫,访问微社区

用R语言做数据清理(详细教程)

2015-10-7 12:00| 发布者: admin| 查看: 3084| 评论: 0|来自: 数据挖掘DW

摘要: 数据的清理如同列夫托尔斯泰所说的那样:“幸福的家庭都是相似的,不幸的家庭各有各的不幸”,糟糕的恶心的数据各有各的糟糕之处,好的数据集都是相似的。一份好的,干净而整洁的数据至少包括以下几个要素:1、每一 ...
数据的汇总


数据的汇总

对数据进行汇总,分类汇总是我们也比较常用的,比如对行或列求和,求均值,求分位数:

data <- matrix(1:16, 4, 4)data
##      [,1] [,2] [,3] [,4]
## [1,]    1    5    9   13
## [2,]    2    6   10   14
## [3,]    3    7   11   15
## [4,]    4    8   12   16
apply(data, 2, mean)
## [1]  2.5  6.5 10.5 14.5
apply(data, 1, sum)
## [1] 28 32 36 40
apply(data, 1, quantile, probs = c(0.25, 0.75))
##     [,1] [,2] [,3] [,4]
## 25%    4    5    6    7
## 75%   10   11   12   13
apply(data, 2, quantile, probs = c(0.25, 0.75))
##     [,1] [,2]  [,3]  [,4]
## 25% 1.75 5.75  9.75 13.75
## 75% 3.25 7.25 11.25 15.25

有时候,为了更快些,我们会用一些函数替代apply:

  • rowSums = apply(x, 1, sum)

  • rowMeans = apply(x, 1, mean)

  • colSums = apply(x, 2, sum)

  • colMeans = apply(x, 2, mean)

我们有时也会处理一些列表,对列表的分类汇总我们会用到sapply,lapply,不同的是前者返回一个向量或矩阵,后者返回一个列表,例:

x <- list(a = 1:10, beta = exp(-3:3), logic = c(TRUE,FALSE,FALSE,TRUE))
lapply(x, mean)
## $a
## [1] 5.5
## 
## $beta
## [1] 4.535
## 
## $logic
## [1] 0.5
sapply(x, mean)
##     a  beta logic 
## 5.500 4.535 0.500
# median and quartiles for each list elementlapply(x, quantile, probs = 1:3/4)
## $a
##  25%  50%  75% 
## 3.25 5.50 7.75 
## 
## $beta
##    25%    50%    75% 
## 0.2516 1.0000 5.0537 
## 
## $logic
## 25% 50% 75% 
## 0.0 0.5 1.0
sapply(x, quantile)
##          a     beta logic
## 0%    1.00  0.04979   0.0
## 25%   3.25  0.25161   0.0
## 50%   5.50  1.00000   0.5
## 75%   7.75  5.05367   1.0
## 100% 10.00 20.08554   1.0

有时候我们还会进行分类汇总,如统计男女工资均值,这时你可以用tapply:

group <- (rbinom(32, n = 20, prob = 0.4))groups <- factor(rep(1:2,10))
tapply(group, groups, length) 
##  1  2 
## 10 10
tapply(group, groups, sum)
##   1   2 
## 135 122
tapply(group, groups, mean)
##    1    2 
## 13.5 12.2


鲜花

握手

雷人

路过

鸡蛋

最新评论

关闭

站长推荐上一条 /2 下一条


id="mn_portal" >首页Portalid="mn_P18" onmouseover="navShow('P18')">应用id="mn_P15" onmouseover="navShow('P15')">技术id="mn_P37" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">前沿id="mn_P36" onmouseover="navShow('P36')">宝箱id="mn_P61" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">专栏id="mn_P65" >企业id="mn_Nd633" >导航 折叠导航 关注微信 关注微博 关注我们

QQ|广告服务|关于我们|Archiver|手机版|小黑屋|大数据人 ( 鄂ICP备14012176号-2  

GMT+8, 2024-5-12 13:43 , Processed in 0.181867 second(s), 22 queries .

Powered by 小雄! X3.2

© 2014-2020 bigdataer Inc.

返回顶部