《R语言实战》自学笔记28-将函数应用于矩阵和数据框
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《R语言实战》自学笔记28-将函数应用于矩阵和数据框相关的知识,希望对你有一定的参考价值。
参考技术A数据准备
R函数的诸多有趣特性之一,就是它们可以应用到一系列的数据对象上,包括标量、向量、矩阵、数组和数据框。
R中提供了一个apply()函数,可将一个任意函数“应用”到矩阵、数组、数据框的任何维度上。
apply(x, MARGIN, FUN, ..., simplify = TRUE)
其中,x为数据对象,可以是数组、矩阵、数据框,数据至少是二维的,MARGIN是维度的下标,MARGIN=1表示行,MARGIN=2表示列。FUN是自定义调用的函数,可为任意R函数,而...则包括了任何想传递给FUN的参数。
apply函数只能用于处理矩阵类型的数据,也就是说所有的数据必须是同一类型。因此要使用apply函数的话,需要将数据类型转换成矩阵类型。
lapply(x, FUN)
lapply函数将函数应用于输入变量x的每一个元素,返回一个与x长度相同的列表。x可以是列表,向量或数据框。
sapply(x, FUN)
x可以是列表,矩阵或数据框,以向量或矩阵形式输出结果。执行的功能与lapply函数相同。
tapply(X, INDEX, FUN = NULL)
tapply用于数据框类型的数据,可以按因子变量分组计算统计量。 X可以是数组、矩阵、数据框等分割型数据向量,INDEX是一个或多个因子的列表,每个因子的长度都与x相同,FUN为自定义的调用函数。 53
参考资料:
《R语言实战》自学笔记62-多元方差分析
参考技术A数据准备
多元方差分析( multivariate analysis of variance ,MANOVA),亦称为多变量方差分析,即表示多元数据的方差分析,是一元方差分析的推广。作为一个多变量过程,多元方差分析在有两个或多个因变量时使用,并且通常后面是分别涉及各个因变量的显着性检验。
当因变量(结果变量)不止一个时,可用多元方差分析(MANOVA)对它们同时进行分析。
结果解读:可以看出v1,v2和v3在nitrogen之间存在很大的不同(P值均小于0.05)。
单因素多元方差分析有两个前提假设,一个是多元正态性,一个是方差—协方差矩阵同质性。
第一个假设即指因变量组合成的向量服从一个多元正态分布。可以用Q-Q图来检验该假设条
件。
方差—协方差矩阵同质性即指各组的协方差矩阵相同,通常可用Box’s M检验来评估该假设。
最后,还可以使用mvoutlier包中的ap.plot()函数来检验多元离群点。
如果多元正态性或者方差—协方差均值假设都不满足,又或者你担心多元离群点,那么可以
考虑用稳健或非参数版本的 MANOVA检验。稳健单因素 MANOVA可通过 rrcov包中的
Wilks.test()函数实现。vegan包中的adonis()函数则提供了非参数MANOVA的等同形式。
稳健检验对离群点和违反MANOVA假设的情况不敏感,结果说明在nitrogen的两个水平下,v1、v2、v3的值均存在显著不同。
参考资料:
以上是关于《R语言实战》自学笔记28-将函数应用于矩阵和数据框的主要内容,如果未能解决你的问题,请参考以下文章