Я пытаюсь вычислить корреляцию между двумя числовыми столбцами в кадре данных для каждого уровня фактора. Ниже приведен пример кадр данных:R: cor.test по группе с ddply
concentration <-(c(3, 8, 4, 7, 3, 1, 3, 3, 8, 6))
area <-c(0.5, 0.9, 0.3, 0.4, 0.5, 0.8, 0.9, 0.2, 0.7, 0.7)
area_type <-c("A", "B", "A", "B", "A", "B", "A", "B", "A", "B")
data_frame <-data.frame(concentration, area, area_type)
В этом примере, я хочу, чтобы вычислить корреляцию между концентрацией и областью для каждого уровня area_type. Я хочу использовать cor.test, а не cor, потому что мне нужны значения p и kendall tau. Я пытался сделать это с помощью ddply:
ddply(data_frame, "area_type", summarise,
corr=(cor.test(data_frame$area, data_frame$concentration,
alternative="two.sided", method="kendall")))
Однако меня возникли проблемы с выходом: она организована по-разному от обычного Kendall cor.test выхода, который гласит г значение, р-значение, альтернативный гипотезы и оценки тау. Вместо этого я получаю вывод ниже. Я не знаю, что указывает каждая строка вывода. Кроме того, выходные значения одинаковы для каждого уровня area_type.
area_type corr
1 A 0.3766218
2 A NULL
3 A 0.7064547
4 A 0.1001252
5 A 0
6 A two.sided
7 A Kendall's rank correlation tau
8 A data_frame$area and data_frame$concentration
9 B 0.3766218
10 B NULL
11 B 0.7064547
12 B 0.1001252
13 B 0
14 B two.sided
15 B Kendall's rank correlation tau
16 B data_frame$area and data_frame$concentration
Что я делаю неправильно с ddply? Или есть другие способы сделать это? Благодарю.
Ваше предложение действительно помогает маркировать выходные данные. Тем не менее, все еще существует проблема, что статистика одинакова для каждого уровня area_type. В этом примере результаты корреляции должны быть разными для каждого уровня area_type. Таким образом, по-видимому, что-то не так, как я использую ddply. – user3791234
К сожалению, я не заметил эту часть. Я отредактировал свой ответ. –
Спасибо. ваше редактирование отлично работает. – user3791234