学习R-描述性统计

1 sapply

> mydata <- read.csv("exp.csv",header = T,sep = ",") #表达量矩阵,首行为表头
> class(mydata)    
[1] "data.frame"
> sapply(mydata,mean,na.rm=TRUE)   #获得数据框每列的平均值
gene_id        R1        R2        R3        G1        G2        G3 
   NA   7.29500   6.24375  19.65438 124.26750  55.18437 232.05312 
`Warning message:`
` In mean.default(X[[i]], ...) : 参数不是数值也不是逻辑值:回覆NA`

sapply还可以使用mean, sd, var, min, max, median, range, quantile,但是数据类型不同.

2 summary

> summary(mydata)
#获得mean,median,25th and 75th quartiles,min,max

3 fivenum()

> fivenum(x, na.rm = TRUE)

x 为数值型向量,可以包含NA以及Inf,-Inf
na.rm = TRUE 默认将NA和NaN去除,但是Inf还保留。
fivenum()函数返回5个值:Tukey min,lower-hinge, median,upper-hinge,max。要注意这里的两个hinge与分位数不同。
比如1:10

> fivenum(1:10)
[1]  1.0  3.0  5.5  8.0 10.0

fivenum取中间两个数5,6取平均值得到中位数5.5,然后从1,2,3,4,5.5中取中位数得到3即为lower-hinge。

4 使用Hmisc包

> library(Hmisc)
 > describe(mydata) 
# n, nmiss, unique, mean, 5,10,25,50,75,90,95th percentiles 
# 5 lowest and 5 highest scores

5 使用pastecs包

> library(pastecs)
> stat.desc(mydata) 
# nbr.val, nbr.null, nbr.na, min max, range, sum, 
# median, mean, SE.mean, CI.mean, var, std.dev, coef.var

6使用psych包

>library(psych)
>describe(mydata)
# item name ,item number, nvalid, mean, sd, 
# median, mad, min, max, skew, kurtosis, se

按分组变量汇总信息

> library(psych)
> describe.by(x, group=NULL,mat=FALSE,type=3,...)

7 使用doBy包

> library(doBy)
> summaryBy(mpg + wt ~ cyl + vs, data = mtcars, 
 >  FUN = function(x) { c(m = mean(x), s = sd(x)) } )
# produces mpg.m wt.m mpg.s wt.s for each 
# combination of the levels of cyl and vs

你可能感兴趣的:(学习R-描述性统计)