如何進行大數據中R語言的描述性統計,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
常見描述性統計可以通過最小值、下四分位數、中位數、上四分位數和最大值,均值、眾數、標準差、極差等查看數據的分布和離散程度;通過偏度(數據分布形態呈現左偏或右偏)和峰度(分布形態呈現尖瘦或矮胖)等查看數據的正態與否。
下面簡單的介紹如何使用R實現數值型變量的上述統計量。
1 基礎包中summary()函數
可得到數值型變量的最小值、下四分位數、中位數、上四分位數和最大值。
#使用自帶的mtcars數據集,選擇mpg,disp和hp三個數值型變量進行分析。head(mtcars)data <- mtcars[c("mpg","disp","hp")]summary(data) mpg disp hp Min. :10.40 Min. : 71.1 Min. : 52.0 1st Qu.:15.43 1st Qu.:120.8 1st Qu.: 96.5 Median :19.20 Median :196.3 Median :123.0 Mean :20.09 Mean :230.7 Mean :146.7 3rd Qu.:22.80 3rd Qu.:326.0 3rd Qu.:180.0 Max. :33.90 Max. :472.0 Max. :335.0
2 psych包中describe()函數
可得到非缺失值的個數、均值、標準差、中位數、截尾平均數、絕對中位差、最小值、最大值、極差、偏度、豐度和平均值的標準誤
#install.packages("psych")library(psych)describe(data) vars n mean sd median trimmed mad min max range skew kurtosis sempg 1 32 20.1 6.03 19.2 19.7 5.41 10.4 33.9 23.5 0.61 -0.37 1.07disp 2 32 230.7 123.94 196.3 222.5 140.48 71.1 472.0 400.9 0.38 -1.21 21.91hp 3 32 146.7 68.56 123.0 141.2 77.10 52.0 335.0 283.0 0.73 -0.14 12.12
3 pastecs包中stat.desc()函數
當設置norm=TRUE(非默認)時,可以返回偏度和豐度(統計顯著程度)和Shapiro-Wilk正態檢驗的結果。
其中p=0.05表示計算平均數的置信區間默認置信度為0.95.
#install.packages("pastecs")library(pastecs)options(digits=3) #設定三位小數stat.desc(data,norm = TRUE) mpg disp hpnbr.val 32.000 3.20e+01 32.0000nbr.null 0.000 0.00e+00 0.0000nbr.na 0.000 0.00e+00 0.0000min 10.400 7.11e+01 52.0000max 33.900 4.72e+02 335.0000range 23.500 4.01e+02 283.0000sum 642.900 7.38e+03 4694.0000median 19.200 1.96e+02 123.0000mean 20.091 2.31e+02 146.6875SE.mean 1.065 2.19e+01 12.1203CI.mean.0.95 2.173 4.47e+01 24.7196var 36.324 1.54e+04 4700.8669std.dev 6.027 1.24e+02 68.5629coef.var 0.300 5.37e-01 0.4674skewness 0.611 3.82e-01 0.7260skew.2SE 0.737 4.60e-01 0.8759kurtosis -0.373 -1.21e+00 -0.1356kurt.2SE -0.230 -7.46e-01 -0.0837normtest.W 0.948 9.20e-01 0.9334normtest.p 0.123 2.08e-02 0.0488
4 自定義函數
除了上述函數包外,還可以自定義函數可以只返回需要的值。
my_describe <- function(x){ options(digits = 3) N = length(x); Nmiss = sum(is.na(x)); Min = min(x, na.rm = TRUE); Q1 = quantile(x, probs = 0.25, na.rm = TRUE); Median = median(x, na.rm = TRUE); Q3 = quantile(x, probs = 0.75, na.rm = TRUE); Max = max(x, na.rm = TRUE); Mean = mean(x, na.rm = TRUE); Sd = sd(x, na.rm = TRUE); Range = abs(diff(range(x))); skew <- sum((x-Mean)^3/Sd^3)/N kurt <- sum((x-Mean)^4/Sd^4)/N-3 #返回結果 return(data.frame(N = N, Nmiss = Nmiss, Min = Min, Q1 = Q1, Median = Median, Q3 = Q3, Max = Max, Mean = Mean, Sd = Sd, Range = Range, Skewness = skew, Kurtosis = kurt))}sapply(data, my_describe) mpg disp hp N 32 32 32 Nmiss 0 0 0 Min 10.4 71.1 52 Q1 15.4 121 96.5 Median 19.2 196 123 Q3 22.8 326 180 Max 33.9 472 335 Mean 20.1 231 147 Sd 6.03 124 68.6 Range 23.5 401 283 Skewness 0.611 0.382 0.726 Kurtosis -0.373 -1.21 -0.136
可以看出自定義函數的結果與上述R包的結果一致,而且可以根據自己的需求選擇返回值。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。