Мне нравится способность plyr разбивать фрейм данных на несколько наборов данных, а затем выполнять идентичные операции с каждым набором. Самая лучшая часть - это когда вы показываете результат в виде аккуратного компактного стола с хорошей маркировкой. Я люблю бросать кучу вычислений в одну строку, используя каждый (). Тем не менее, я не понимаю, почему использование функции подведения итогов в аргументе ddply перекрывает вывод и делает его длинным и без меток. Посмотрите здесь, чтобы понять, что я имею в виду. Можете ли вы сказать мне, что я делаю не так? Я предпочитаю использовать суммирование.
Давайте сначала настроим пример фрейма данных. Представьте, что у вас было 60 участников в исследовании. 20 из них были забавными, 20 умными и 20 милыми. Затем каждый субъект получил оценку.
type<-rep(c("funny","clever", "nice"),20)
score<-rnorm(60)+10
data<-data.frame(type,score)
Теперь мне нужна таблица, показывающая средний балл, медианный балл, минимальный балл и максимальный балл для каждого из 3 типов людей
ddply(data,.(type), summarise, each(mean,median,min,max)(score))
В приведенной выше строке должна была быть хорошая таблица (3 строки - 1 для каждого типа и 4 столбца данных). Увы, он дает всю длинную таблицу с одним столбцом чисел, ни один из которых не помечен.
ddply(data,.(type), function(jjkk) each(mean,median,min,max)(jjkk$score))
Приведенная выше строка дает мне то, что я хочу. Не могли бы вы объяснить, что я не понимаю в синтаксисе ddply.