sapply( )函數(shù)
r語(yǔ)言中summary()函數(shù)提供了最小值、最大值、四分位數(shù)和數(shù)值型變量的均值,以及因子向量和邏輯性向量的頻數(shù)統(tǒng)計(jì)(之前的文章中以及提及)
sapply(x, FUN, options)函數(shù)中x是選擇的數(shù)據(jù)框(矩陣),fun為任意的函數(shù),后邊可選項(xiàng)
來(lái)看一個(gè)栗子吧
mystats<-function(x,na.omit=FALSE){? ?#定義一個(gè)函數(shù),其中自變量為x,這里選擇不忽視缺失值;
?if(na.omit)
? ? x<-x[!is.na(x)]? ?#比如說(shuō)x=c(2,NA,4),執(zhí)行這一段代碼之后,結(jié)果就是x=c(2,4);
? ? m<-mean(x)? ? ?#x的均值
? ? n<-length(x)? ? #長(zhǎng)度
? ? s<-sd(x)? ? ? ? ?#標(biāo)準(zhǔn)差
? ? skew<-sum((x-m)^3/s^3)/n? ? #峰度值
? ? kurt<-sum((x-m)^4/s^4)/n? ? ? #偏度值
? ?return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt))? ?#返回值
?}
myvars<- c("mpg","hp","wt")? ? ?#以字符形式輸出
?sapply(mtcars[myvars],mystats)? ? #第一個(gè)變量為數(shù)據(jù),第二個(gè)內(nèi)容為暫定的函數(shù)
*輸出的結(jié)果如下所示:
? ? ? ? ? ? ? mpg? ? ? ? ? hp? ? ? ? wt
n? ? ? ? 32.000000? 32.0000000 32.0000000
mean? ? 20.090625 146.6875000? 3.2172500
stdev? ? 6.026948? 68.5628685? 0.9784574
skew? ? ? 0.610655? 0.7260237? 0.4231465
kurtosis? 2.627234? 2.8644489? 2.9772892
describe( )函數(shù)
hmisc包中的describe( )函數(shù)課返回變量和觀測(cè)的數(shù)量、缺失值和唯一值的數(shù)目、平均值、分位數(shù),以及5個(gè)最大值和5個(gè)最小值。
來(lái)看一個(gè)栗子吧
溫馨提示:這里需要大家安裝packages,如有需要,請(qǐng)?jiān)L問https://cran.r-project.org/,然后按照需要進(jìn)行安裝。
安裝格式 install.pachages("包名稱"),建議大家將下載的包直接放入R的library中,這是需要建立關(guān)聯(lián)的,便于管理和調(diào)用。
調(diào)用的時(shí)候,使用 library(包名稱) 即可
?library(Hmisc)
myvars<- c("mpg","hp","wt")
describe(mtcars[myvars])
mtcars[myvars]? #輸出結(jié)果,如下圖:
pastecs包(需要安裝奧)中有一個(gè)名為stat.desc()的函數(shù),它可以計(jì)算種類繁多的描述性統(tǒng)計(jì)量,格式為:
stat.desc(x, basic=TRUE,desc=TRUE,norm=FALSE, P=0.95) #一般默認(rèn)相關(guān)的設(shè)置就行,重點(diǎn)是寫入變量x;
stat.desc()只要描述的數(shù)據(jù)框或者時(shí)間序列的所有值、空值、缺失值的數(shù)量,以及最小值、最大值、值域,還有總和。同時(shí)還包括均值、中位數(shù)、標(biāo)準(zhǔn)誤、平均數(shù)值信度為95%的置信區(qū)間、方差、標(biāo)準(zhǔn)差以及變異系數(shù)等。
來(lái)看一個(gè)栗子吧
?library(pastecs)
?myvars <- c("mpg","hp","wt")
?stat.desc(mtcars[myvars])
? ? ? ? ? ? ? ? ? ? mpg? ? ? ? ? hp? ? ? ? ? wt
nbr.val? ? ? 32.0000000? 32.0000000? 32.0000000
nbr.null? ? ? 0.0000000? ? 0.0000000? 0.0000000
nbr.na? ? ? ? 0.0000000? ? 0.0000000? 0.0000000
min? ? ? ? ? 10.4000000? 52.0000000? 1.5130000
max? ? ? ? ? 33.9000000? 335.0000000? 5.4240000
range? ? ? ? 23.5000000? 283.0000000? 3.9110000
sum? ? ? ? ? 642.9000000 4694.0000000 102.9520000
median? ? ? ? 19.2000000? 123.0000000? 3.3250000
mean? ? ? ? ? 20.0906250? 146.6875000? 3.2172500
SE.mean? ? ? ? 1.0654240? 12.1203173? 0.1729685
CI.mean.0.95? 2.1729465? 24.7195501? 0.3527715
var? ? ? ? ? 36.3241028 4700.8669355? 0.9573790
std.dev? ? ? ? 6.0269481? 68.5628685? 0.9784574
coef.var? ? ? 0.2999881? ? 0.4674077? 0.3041285
朋友們,除了上述的描述方法外,還有psych包中的describe()函數(shù)也是可以的,有興趣的可以嘗試下奧!O(∩_∩)O哈哈~