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