Я использовал tapply
для генерации сводок по коэффициенту для data.frame
. Например,Сохранение сводки данных в виде фрейма данных
Я вижу, что класс s является массивом. Есть ли простой способ преобразования выходов tapply
в другой data.frame
?
Я использовал tapply
для генерации сводок по коэффициенту для data.frame
. Например,Сохранение сводки данных в виде фрейма данных
Я вижу, что класс s является массивом. Есть ли простой способ преобразования выходов tapply
в другой data.frame
?
Типичный подход заключается в использовании do.call(rbind, ...)
, как это:
do.call(rbind, s)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 4 21.4 22.80 26.0 26.66 30.40 33.9
# 6 17.8 18.65 19.7 19.74 21.00 21.4
# 8 10.4 14.40 15.2 15.10 16.25 19.2
Как отметил @akrun в комментариях ранее, окружив его as.data.frame
бы получить вам data.frame
.
Если вы открыты для альтернативных вариантов, вы можете также попробовать «data.table», с помощью которого вы можете сделать:
library(data.table)
as.data.table(mtcars)[, as.list(summary(mpg)), by = cyl]
# cyl Min. 1st Qu. Median Mean 3rd Qu. Max.
# 1: 6 17.8 18.65 19.7 19.74 21.00 21.4
# 2: 4 21.4 22.80 26.0 26.66 30.40 33.9
# 3: 8 10.4 14.40 15.2 15.10 16.25 19.2
'агрегат()' может быть лучшим выбором функции, чем 'tapply() 'с учетом желаемого результата. – MrFlick
@MrFlick, агрегированный столбец из 'aggregate' будет« матрицей ». Для этого понадобится (несколько неуклюжий) 'do.call (data.frame, aggregate (...)) тип типа. – A5C1D2H2I1M1N2O1R2T1
Спасибо за тестирование @AnandaMahto. Я был на мобильном устройстве, где не мог. – MrFlick