0
데이터 프레임이 몇 개 있습니다.데이터 프레임 목록이 하나의 테이블 통계 (최대, 최소, IQR, ...)를 가져옵니다.
IQR (Interquartile Range)과 함께 기본 통계를 하나의 테이블에 모두 표시해야합니다.
불행히도 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)
}
더 간단한 해결책이 없다 궁금 그러나 다음과 같이
내가 적절한 기능을 찾을 수 없습니다 때문에
, 내가 하나를 자신을 썼다.
첫 번째 버전은 저에게 적합하지만 좋은 테이블은 아닙니다 (xtable에 전달할 수 없음). 나는 'tidyverse'설치에 문제가 있지만 작동한다고 믿습니다. – matandked