Пытается вывести итоговую статистику, используя summarize
от rockchalk
package. Хотите, чтобы статистика округлялась до 2 десятичных знаков. Я получаю сообщение об ошибке, когда , используя round
на summarize
.Результаты округления результатов обобщаются с ошибкой
library(rockchalk)
M1 <- structure(c(0.18, 0.2, 0.24, 0.35, -0.22, -0.17, 0.28, -0.28, -0.14, 0.03, 0.87, -0.2, 0.06, -0.1, -0.72, 0.18, 0.01, 0.31, -0.36, 0.61, -0.16, -0.07, -0.13, 0.01, -0.09, 0.26, -0.14, 0.08, -0.62, -0.2, 0.3, -0.21, -0.11, 0.05, 0.06, -0.28, -0.27, 0.17, 0.42, -0.05, -0.15, 0.05, -0.07, -0.22, -0.34, 0.16, 0.34, 0.1, -0.12, 0.24, 0.45, 0.37, 0.61, 0.9, -0.25, 0.02), .Dim = c(56L, 1L))
#This works
round(apply(M1, 2, mean),2)
#This works
summaryround <- function(x) {round(summary(x),2)}
apply(M1, 2, summaryround)
#This gives error "non-numeric argument"
round(apply(M1, 2, summarize),2)
#Thought this would work but also gives error "non-numeric argument"
summarizeround <- function(x) {round(summarize(x),2)}
apply(M1, 2, summarizeround)
Любые идеи? Я могу объединить вывод summary
, но хочу использовать summarize
, если это возможно, поскольку мне нравится получать выходы эксцесса и асимметрии в той же распечатке (конечно, может создать мою собственную функцию, объединяющую summary
и kurtosis
и все, что я хочу, а не если этого избежать).
РЕДАКТИРОВАТЬ: должен был упомянуть, что это действительно работает на большом кадре данных; превратил его в матрицу из 1 столбца, как я думал, упростил бы воспроизводимый пример.
Psidom вы знаете, как сохранить имена столбцов, а не получать «x»? Ваш код отлично работает, но я запускаю его в кадре данных с несколькими сотнями столбцов, для чего нужны имена столбцов. Благодаря! – Krug
Вы можете разделить сводку на два шага на 'summaryList <- lapply (as.data.frame (M1), summizeround); summaryDf <- as.data.frame (do.call (cbind, summaryList)) ', а затем присваивать имена именам данных reuslt dataframe (summaryDf) <- names (summaryList)' – Psidom