В R у меня есть кадр данных, содержащий метку класса C (фактор) и два измерения, M1 и M2 . Как рассчитать соотношение между M1 и M2 в каждом классе?
В идеале я хотел бы получить фрейм данных с одной строкой для каждого класса и двумя столбцами: метка класса C и корреляция.
r
correlation
NPE
источник
источник
plyr
пакет, не так ли? :)Если вы склонны использовать функции в базовом пакете, вы можете использовать
by
функцию, а затем собрать данные:источник
by
, но не мог понять, как преобразовать результат в кадр данных.Другой пример, использующий базовые пакеты и данные примера Тала:
источник
plyr
делает, но он дает вам более точный контроль, хотя и не так чист. Мое мнение изменилось бы, если бы у одного решения был лучший профиль времени / памяти. Я не сравнивал их, хотя.Использование data.table короче, чем dplyr
источник
Вот аналогичный метод, который даст вам таблицу со значениями n и p для каждой корреляции (для удобства округлены до 3 десятичных знаков):
источник
Вот более современное решение, использующее
dplyr
пакета (которого еще не было, когда задавался вопрос):Построить вход:
Вычислить соотношения:
Выход:
источник