0

いくつかのデータフレームがあります。

すべての基本統計を四分位範囲 (IQR) と一緒に 1 つのテーブルに表示する必要があります。

残念ながら、summary関数は IQR を返しません。一方、fivenumIQR を返しますが、(?) データ フレームのリストに適用できず、中央値は必要ありません。

適切な関数が見つからなかったので、次のように自分で作成しました。

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)
}

しかし、もっと簡単な解決策がないのではないかと思います。

4

1 に答える 1