美文网首页
R,我感兴趣的02

R,我感兴趣的02

作者: 按着易得 | 来源:发表于2018-12-15 01:03 被阅读0次

认识apply

> ##apply(x,MARGIN,FUN,……)
> ##x是要处理的对象,可以是矩阵、数组、数据框
> ##MARGIN:如果是矩阵则值为1或2,1每一行,2每一列。FUN要用的函数。……FUN所需额外参数

> ##动物园,观察了3天内老虎、狮子、豹子出现的次数,列出各种动物出现的最高次数。
> info <- matrix(c(8, 9, 6, 5, 7, 2, 10, 6, 8),ncol = 3)
> colnames(info) <- c("tiger", "lion", "leopard")
> row.names(info) <- c("day1", "day2", "day3")
> info
     tiger lion leopard
day1     8    5      10
day2     9    7       6
day3     6    2       8
> apply(info, 2, max)
  tiger    lion leopard 
      9       7      10 

sapply lapply


> ##sapply()可处理数据框、向量、list。格式为sapply(x,FUN,……)
> ##如果处理完list/数据框/向量后,返回的数字,则返回的结果会被简化成向量
> ##如果处理完list/数据框后,返回的向量有相同的长度,则返回的结果被简化为矩阵
> ##如果是其他情况则返回的是list
> 
> ## lapply()所传回来的是list。格式为lapply(x,FUN,……)
> ## x可以是向量、数据框和list

tapply

> ## tapply()主要用于对一个因子或因子列表,执行指定的函数调用,最后获得汇总信息。
> ## 格式tapply(x, INDEX, FUN,……)
> ## x处理对象,通常为向量,也可是其他数据形态。INDEX是因子或分类字符串向量或因子列表
> 
> ## 使用state.region,计算美国4大区包含的州的数量
> 
> tapply(state.region, state.region, length)
    Northeast         South North Central          West 
            9            16            12            13 



> ## 用state.x77和state.region,计算美国4大区各区百姓平均收入。
> head(state.x77)
           Population Income Illiteracy Life Exp Murder HS Grad Frost   Area
Alabama          3615   3624        2.1    69.05   15.1    41.3    20  50708
Alaska            365   6315        1.5    69.31   11.3    66.7   152 566432
Arizona          2212   4530        1.8    70.55    7.8    58.1    15 113417
Arkansas         2110   3378        1.9    70.66   10.1    39.9    65  51945
California      21198   5114        1.1    71.71   10.3    62.6    20 156361
Colorado         2541   4884        0.7    72.06    6.8    63.9   166 103766
> zhang19 <- function()
+ {
+   str_t <- as.character(state.region) # 转成字符串
+   income <- state.x77[,2]  # 各州收入
+   names(income) <- NULL    #去掉各州输入向量名称
+   a.income <- tapply(income, 
+                      factor(str_t, levels = c("Northeast", "South", "North Central", "West")), 
+                      mean)
+   return(a.income)
+ }
> zhang19()
    Northeast         South North Central          West 
     4570.222      4011.938      4611.083      4702.615 

相关文章

网友评论

      本文标题:R,我感兴趣的02

      本文链接:https://www.haomeiwen.com/subject/cgcohqtx.html