-1

これは、記述統計量を計算するために使用されるコードです

densities <- abs(rnorm(100,mean = 15000, sd = 11600)) #just a vector of nonzero normal data

#run through descriptive statistics

function.names <- c("mean","quantile","IQR","sd","max","min","median")
for (i in 1:length(function.names)){
  assign("fun1", get(function.names[i]) )
  assign(paste("data_", function.names[i], sep=""), fun1(densities))
  rm(fun1) #start over
}

range <- max(densities)-min(densities) #range
pearson_mode_skewness = (mean(densities)- median(densities)/sd(densities))
df_desc <- data.frame(function.names, paste("data_", function.names, sep="")) #plot in a dataframe/cell array


df_desc

> df_desc
  function.names paste..data_...function.names..sep......
1           mean                                data_mean
2       quantile                            data_quantile
3            IQR                                 data_IQR
4             sd                                  data_sd
5            max                                 data_max
6            min                                 data_min
7         median                              data_median

==========

これらの記述統計のすべてをループしようとしています。後でさらに関数を含める必要があるかもしれないので、展開可能な関数ベクトルにしました。上記のように、2 列目の値をホストする効果的な要約スライドを作成するにはどうすればよいでしょうか。各関数の値が欲しいです (複数結果の統計の場合は、文字列に切り捨てられると便利です)。これを、密度の複数のベクトル (およびそのサブサンプル) で使用する関数に変換する予定です。

\ 前もって感謝します!

編集:回答に基づく現在の作業コード

#DESCRIPTIVE STATS
descriptive_table <- function(data){
  funlist <- list(mean,quantile,IQR,sd,max,min,median)
  temp <- cbind(c("mean","quantile","IQR","sd","max","min","median"), lapply(funlist, function(fn) fn(data)))
  colnames(temp) <- c("Statistic", "Value")
  descriptives <- rbind(temp, c("range",max(data)-min(data)),
                        c("Pearson Mode Skewness", (mean(data)- median(data)/sd(data))) )
  print(descriptives)
}
4

1 に答える 1