我有一個包含10個不同變量的表。現在我想計算諸如平均值,Q1,Q3,SD,中位數,IQR,偏度和峯度的各種東西。R計算一組分佈的值
我可以單獨計算所有這些,但它們是我可以在哪裏運行它們的任何方式循環讓我獲得上述所有東西的價值。
謝謝。 塞特希
我有一個包含10個不同變量的表。現在我想計算諸如平均值,Q1,Q3,SD,中位數,IQR,偏度和峯度的各種東西。R計算一組分佈的值
我可以單獨計算所有這些,但它們是我可以在哪裏運行它們的任何方式循環讓我獲得上述所有東西的價值。
謝謝。 塞特希
set.seed(1)
df <- data.frame(a=rnorm(10),b=rnorm(10))
summarydist <- function(x) {
y1 <- summary(x)
y2 <- IQR(x)
names(y2) <- "IQR"
require(moments)
y3 <- skewness(x)
names(y3) <- "Skewness"
y4 <- kurtosis(x)
names(y4) <- "kurtosis"
c(y1,y2,y3,y4)
}
sapply(df,summarydist)
# a b
#Min. -0.8356000 -2.2150000
#1st Qu. -0.5462000 -0.0377500
#Median 0.2566000 0.4919000
#Mean 0.1322000 0.2488000
#3rd Qu. 0.5537000 0.9132000
#Max. 1.5950000 1.5120000
#IQR 1.0998807 0.9509302
#Skewness 0.2961938 -1.1871418
#kurtosis 2.2752871 3.8598299
使用Roland的DF你可以使用basicStats
從fBasic
包,以避免寫一個函數
# library(fBasics)
basicStats(df)
a b
nobs 10.000000 10.000000
NAs 0.000000 0.000000
Minimum -0.835629 -2.214700
Maximum 1.595281 1.511781
1. Quartile -0.546187 -0.037748
3. Quartile 0.553693 0.913182
Mean 0.132203 0.248845
Median 0.256576 0.491872
Sum 1.322028 2.488450
SE Mean 0.246843 0.338210
LCL Mean -0.426195 -0.516240
UCL Mean 0.690600 1.013930
Variance 0.609314 1.143862
Stdev 0.780586 1.069515
Skewness 0.252895 -1.013599
Kurtosis -1.157017 0.126462
只需選擇你需要的東西:
DF <- basicStats(df)[c(3:8,15:16),]
rbind(DF, IQR=DF[4,]-DF[3,])
a b
Minimum -0.835629 -2.214700
Maximum 1.595281 1.511781
1. Quartile -0.546187 -0.037748
3. Quartile 0.553693 0.913182
Mean 0.132203 0.248845
Median 0.256576 0.491872
Skewness 0.252895 -1.013599
Kurtosis -1.157017 0.126462
IQR 1.099880 0.950930
感謝羅納德。總結只是給出了上述的值。但是,如果我想在循環中運行一些我的函數,我在問題中提到了如何運行該函數。謝謝 – SNT
我的編輯對答案有幫助嗎? – Roland