R,我感兴趣的02

认识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 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 循环对于代码运行来说是非常消耗时间和资源的,在R中,要尽量少使用for while循环,用apply函数族的话对于...
    willnight阅读 3,764评论 0 2
  • 笔记内容:使用Rstudio的快捷键及tips一些工作中常用、有用的packages及函数各种日常备忘... .....
    GPZ_Lab阅读 5,192评论 0 15
  • 生物考完归来,只剩生物统计学待我手刃了。转眼着手于熟悉的环境,想想学习R也有几个月的时光了。谈得上入手,谈不上熟练...
    王诗翔阅读 16,877评论 9 65
  • 昨天学习的毛利可以说明这是不是一门好生意,今天学习的营业利润率则说明能不能真正赚钱。 营业利润率=营业利润/营业收...
    老六烟圈阅读 350评论 0 1
  • 九 商隐拟无题 幽情碧血凝 精魂虽化蝶 春丝梦中萦 他乡芭蕉雨 岁岁残荷声 沧海明月泪 枉然是深情 八 尾生重信义...
    柳枫林阅读 232评论 0 2

友情链接更多精彩内容