いくつかのデータフレームがあります。
すべての基本統計を四分位範囲 (IQR) と一緒に 1 つのテーブルに表示する必要があります。
残念ながら、summary
関数は IQR を返しません。一方、fivenum
IQR を返しますが、(?) データ フレームのリストに適用できず、中央値は必要ありません。
適切な関数が見つからなかったので、次のように自分で作成しました。
removeXYcol <- function(df)
{
# removes coordinates
drops <- c("X","Y")
withoutXY<- df[,!(names(df) %in% drops)]
withoutXY
}
getStatsTable <- function(listOfDataFrames, df_names = NULL, digits_no = 2)
{
# returns table with statistics (together with IQR which is not returned by summary)
for (df in listOfDataFrames){
df_data <- unlist(removeXYcol(df))
minimum <- round(min(df_data,na.rm = TRUE),digits = digits_no)
maximum <- round(max(df_data, na.rm = TRUE),digits = digits_no)
average <- round(mean(df_data, na.rm = TRUE),digits = digits_no)
IQR_ <- round(IQR(df_data, na.rm = TRUE),digits = digits_no)
toReturn <- c(minimum, maximum, average, IQR_)
if (exists("myStats")) {
myStats <- rbind(myStats, toReturn)
} else {
myStats <- toReturn
}
}
colnames(myStats) <- c("minimum", "maximum", "average", "IQR")
if (is.null(df_names)) {
df_names <- seq(length(listOfDataFrames))
}
rownames(myStats) <- df_names
return(myStats)
}
しかし、もっと簡単な解決策がないのではないかと思います。