Как запустить несколько тестов корреляций в R и создать новую таблицу из результатов функции - PullRequest
1 голос
/ 28 марта 2020

У меня есть df, похожий на это изображение здесь.

Текущий df

Я хотел бы провести корреляционный тест между value_x и value_y, где значение дня отличается и его специфический c фрукт ,

Таким образом, он будет проверять между value_x и value_y, где фрукты равны "Apple", а день - 1 Однако функция должна принимать все вхождения value_x и value_y.

Там, где фрукты различны, а день уникален.

Итак, корреляционный тест будет выглядеть как value_x, value_y, если fruit == "apple", и сгруппирован по дням.

Таким образом, для теста на корреляцию потребуются значения .34 и .14, 0.23 и 0.68, 0.05 и 2.12.

Затем я хотел бы представить эти данные в новом df

новом фрейме данных (желаемый вывод)

dput

structure(list(Day = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L),

           Value_x = c(0.34, 0.32, 0.23, 0.32, 0.23, 0.14, 0.05, -0.04, 0.05, -0.04, -0.04, -0.04),

           Value_y = c(0.14, 0.05, -0.04, 0.32, 0.68, 1.04, 1.4, 1.76, 2.12, 2.48, 2.84, 3.2),

           Fruit = structure(c(1L, 3L, 2L, 4L, 1L, 3L, 2L, 4L, 1L, 3L, 2L, 4L),

                             .Label = c("Apple", "Orange", "Pear", "Watermelon"), class = "factor")), class = "data.frame",

      row.names = c(NA, -12L))

Я все еще новичок в R, и эта функция действительно над моей головой. Я использовал cor () для корреляционных тестов в прошлом. Я не совсем знаю, с чего начать эту проблему. Буду очень признателен за любые советы.

Спасибо!

1 Ответ

0 голосов
/ 28 марта 2020

Мы можем сделать group_by cor

library(dplyr)
df %>%
    group_by(Fruit) %>%
    summarise(out = cor(Value_x, Value_y))

Или используя data.table

library(data.table)
setDT(df)[, .(out = cor(Value_x, Value_y)), by = Fruit]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...