0

10個の異なる変数を持つテーブルがあります。今、Rで平均、Q1、Q3、SD、中央値、IQR、歪度、尖度などのさまざまなものを計算したいと思います.

これらすべてを個別に計算できますが、ループで実行して上記のすべての値を得ることができる方法です。

ありがとうございました。センティル

4

2 に答える 2

2
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
于 2012-10-01T08:28:34.473 に答える
1

basicStatsRoland の df を使用すると、関数の記述を避けるためにfrom fBasicpackage を使用できます

# 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
于 2012-10-01T11:31:21.960 に答える