Я преобразовал фрейм данных в широкий формат и теперь хочу вычислить парные t-тесты для получения p-значений. Мне удалось сделать это для каждой пары столбцов индивидуально, но это намного больше кода, чем я считаю необходимым. Я все еще новичок в R, данных и кодировании в целом, и не мог легко найти решение здесь, в Stack Overflow.
Мой широкий фрейм данных:
> head(df_wide)
# A tibble: 6 x 21
Assessor `Appearance1 `Appearance2 `Aroma_1 `Aroma_2 `Flavour_1 `Flavour_2
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 10 10 10 10 10 10
2 6 7 7 5 8 4
# ... with 14 more variables
Я хочу выполнить парный T-тест для атрибутов, то есть Appearance1 и Appearance2, Aroma1 и Aroma2 и т. Д. Все 14 других переменных <dbl>
и также являются атрибутами, которые должны быть включены в качестве парных столбцов для T-теста.
В идеале на выходе должен быть вектор только p-значений, а не вся информация. Мне удалось выполнить такое кодирование для отдельных пар, но я хотел знать, можно ли это сделать в рамках выполнения T-теста для нескольких пар столбцов.
Вот код, который у меня есть для первых двух атрибутов:
p_values <- c(t.test(df_wide$`Appearance1`, df_wide$`Appearance2`, paired = T)[["p.value"]],
t.test(df_wide$`Aroma1`, df_wide$`Aroma2`, paired = T)[["p.value"]])
Это создает нужный мне вектор, но это громоздко и подвержено ошибкам. В идеале я мог бы выполнить это сразу для всех пар без необходимости использовать имена столбцов.
У меня есть исходный фрейм данных в длинном формате, если бы было проще сделать это с его помощью (РЕДАКТИРОВАТЬ: использовалось dput()
для первых 20 строк вместо head()
:
> dput(df_test[1:20,])
structure(list(Assessor = c(1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10),
Product = c("MC", "MV", "MC", "MV", "MV", "MC", "MC", "MV", "MV", "MC", "MC", "MV", "MC", "MV", "MC", "MV", "MV", "MC", "MV", "MC"),
Appearance = c(10, 10, 6, 7, 9, 6, 7, 8, 9, 8, 10, 8, 6, 6, 9, 8, 8, 8, 9, 9),
Aroma = c(10, 10, 7, 5, 9, 8, 6, 7, 5, 7, 9, 8, 6, 6, 5, 3, 6, 7, 9, 6),
Flavour = c(10, 10, 8, 4, 10, 7, 7, 6, 8, 8, 9, 10, 8, 8, 6, 8, 7, 9, 9, 8),
Texture = c(10, 10, 8, 8, 9, 6, 7, 8, 8, 8, 9, 10, 8, 8, 9, 8, 8, 9, 9, 8),
`JAR Colour` = c(3, 2, 2, 3, 3, 3, 3, 3, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3),
`JAR Strength Chocolate` = c(2, 2, 3, 2, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 3, 3, 2),
`JAR Strength Vanilla` = c(3, 3, 3, 2, 3, 2, 3, 3, 2, 3, 2, 3, 3, 3, 2, 2, 3, 3, 2, 3),
`JAR Sweetness` = c(2, 3, 3, 1, 3, 2, 2, 2, 3, 3, 2, 3, 3, 3, 3, 2, 3, 3, 3, 3),
`JAR Creaminess` = c(3, 3, 3, 3, 3, 1, 3, 2, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3),
`Overall Acceptance` = c(9, 10, 8, 4, 10, 5, 7, 7, 8, 8, 9, 10, 8, 8, 8, 8, 8, 9, 8, 8)),
row.names = c(NA, -20L), class = c("tbl_df", "tbl", "data.frame"))
Переменная Product - это та переменная, которая использовалась для создания парных столбцов в широкоформатном фрейме данных. Заранее спасибо.