1、R语言方法总结归纳计算描述性统计量:1、summary():例: summary(mtcarsvars)summary()函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计。2、apply()函数或sapply()函数计算所选择的任意描述性统计量。mean、 sd、 var、 min、 max、 median、 length、 range和quantile。函数fivenum()可返回图基五数总括(Tukeys five-number summary,即最小值、下四分位数、中位数、上四分位数和最大值)。sapply() 例: mystats - funct
2、ion(x, na.omit = FALSE) if (na.omit) x - x!is.na(x) m - mean(x) n - length(x) s - sd(x) skew - sum(x - m)3/s3)/n kurt - sum(x - m)4/s4)/n - 3 return(c(n = n, mean = m, stdev = s, skew = skew, kurtosis = kurt) sapply(mtcarsvars, mystats)3、describe(): Hmisc包:返回变量和观测的数量、缺失值和唯一值的数目、平均值、分位数,以及五个最大的值和五个最小
3、的值。 例: library(Hmisc) describe(mtcarsvars)4、stat.desc():pastecs包若basic=TRUE(默认值),则计算其中所有值、空值、缺失值的数量,以及最小值、最 大值、值域,还有总和。若desc=TRUE(同样也是默认值),则计算中位数、平均数、平均数的标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系数。若norm=TRUE(不是默认的),则返回正态分布统计量,包括偏度和峰度(以及它们的统计显着程度)和ShapiroWilk正态检验结果。这里使用了p值来计算平均数的置信区间(默认置信度为0.95:例: library(past
4、ecs) stat.desc(mtcarsvars)5、describe():psych包计算非缺失值的数量、平均数、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均值的标准误 例: library(psych) describe(mtcarsvars)分组计算描述性统计量1、aggregate():例:aggregate(mtcarsvars, by = list(am = mtcars$am), mean)2、by():例: dstats - function(x)(c(mean=mean(x), sd=sd(x) by(mtcarsvars, mtcars$a
5、m, dstats) by(mtcars,vars,mtcars$am,plyr:colwis(dstats)3、summaryBy():doBy包例 library(doBy)summaryBy(mpg + hp + wt am, data = mtcars, FUN = mystats)4、describe.by():doBy包(describe.by()函数不允许指定任意函数,)例:library(psych)describe.by(mtcarsvars, mtcars$am)5、reshape包分组:(重铸和融合)例:library(reshape)dstats - function(
6、x) (c(n = length(x), mean = mean(x), sd = sd(x)dfm - melt(mtcars, measure.vars = c(mpg, hp, wt), id.vars = c(am, cyl)cast(dfm, am + cyl + variable ., dstats)频数表和列联表1、table():生成简单的频数统计表mytable - with(Arthritis, table(Improved)Mytable2、prop.table():频数转化为比例值prop.table(mytable)3、prop.table()*100:转化为百分比p
7、rop.table(mytable)*100二维列联表4、table(A,B)/xtabs(A+b,data=mydata)例:mytable - xtabs( Treatment+Improved, data=Arthritis)5、margin.table()和prop.table():函数分别生成边际频数和比例 (1:行,2:列)行和与行比例margin.table(mytable, 1)prop.table(mytable, 1)列和与列比例margin.table(mytable, 2)prop.table(mytable, 2)prop.table(mytable)6、addmar
8、gins():函数为这些表格添加边际和addmargins(mytable)admargins(prop.table(mytable)addmargins(prop.table(mytable, 1), 2)addmargins(prop.table(mytable, 2, 1)7.crossTable():gmodels包例:library(gmodels)CrossTable(Arthritis$Treatment, Arthritis$Improved)多维列联表1、table()和xtabs():都可以基于三个或更多的类别型变量生成多维列联表。2、ftable():例:mytable
9、- xtabs( Treatment+Sex+Improved, data=Arthritis)mytableftable(mytable)margin.table(mytable, 1)margin.table(mytable, 2)margin.table(mytable, 3)margin.table(mytable, c(1,3)ftable(prop.table(mytable, c(1, 2)ftable(addmargins(prop.table(mytable, c(1, 2), 3)gtable(addmargins(prop.table(mytable, c(1, 2),
10、3) * 100独立检验1、卡方独立性检验 :chisq.test()例:library(vcd)mytable - xtabs(Treatment+Improved, data=Arthritis)chisq.test(mytable)mytable - xtabs(Improved+Sex, data=Arthritis)chisq.test(mytable)2、Fisher精确检验:fisher.test() 例:mytable - xtabs(Treatment+Improved, data=Arthritis) fisher.test(mytable)3、Cochran-Mantel
11、Haenszel检验:mantelhaen.test() 例:mytable - xtabs(Treatment+Improved+Sex, data=Arthritis) mantelhaen.test(mytable)相关性度量1、assocstats(): 例:library(vcd)mytable - xtabs(Treatment+Improved, data=Arthritis)assocstats(mytable)2、cor():函数可以计算这三种相关系数,3、cov():函数可用来计算协方差例:states - state.x77, 1:6cov(states)cor(stat
12、es)cor(states, method=spearman)x - states, c(Population, Income, Illiteracy, HS Grad)y - states, c(Life Exp, Murder)cor(x, y)4、pcor():偏相关 ggm包例:library(ggm)pcor(c(1, 5, 2, 3, 6), cov(states)相关性的显着性检验1、cor.test()其中的x和y为要检验相关性的变量, alternative则用来指定进行双侧检验或单侧检验(取值为two.side、 less或greater) ,而method用以指定要计算的
13、相关类型(pearson、kendall或spearman)当研究的假设为总体的相关系数小于0时,请使用alternative=less。在研究的假设为总体的相关系数大于0时,应使用alternative=greater。在默认情况下,假设为alternative=two.side(总体相关系数不等于0)。 例:cor.test(states, 3, states, 5)2、corr.test():可以为Pearson、 Spearman或Kendall相关计算相关矩阵和显着性水平。例:library(psych)corr.test(states, use = complete)3、pcor.
14、test():psych包t 检验1、t.test(yx,data)(独立样本)例:library(MASS)t.test(Prob So, data=UScrime)2、t.test(y1,y2,paired=TRUE)(非独立) 例:library(MASS)sapply(UScrimec(U1, U2), function(x) (c(mean = mean(x), sd = sd(x)with(UScrime, t.test(U1, U2, paired = TRUE)组间差异的非参数检验两组的比较:1、wilcox.test(yx,data) :评估观测是否是从相同的概率分布中抽得例
15、:with(UScrime, by(Prob, So, median)wilcox.test(Prob So, data=UScrime)2、wilcox.test(y1,y2,paried=TRUE):它适用于两组成对数据和无法保证正态性假设的情境。例:sapply(UScrimec(U1, U2), median)with(UScrime, wilcox.test(U1, U2, paired = TRUE)多于两组的比较:1、kruskal.test(yA,data):各组独立kruskal.test(Illiteracy state.region, data=states)2、fried
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1