На самом деле есть 2 вопроса, один из которых более сложный, чем другой.
В1: Я ищу метод, который похож на corrplot()
, но может иметь дело с факторами.
Первоначально я пытался использовать chisq.test()
, затем вычислил p-значение и V Крамера Крамера как корреляцию, но там слишком много столбцов, чтобы вычислить.Так может кто-нибудь сказать мне, если есть быстрый способ создать «corrplot», что каждая ячейка содержит значение Cramer's V , в то время как цвет отображается как p-значение .Или любой другой вид подобного сюжета.
Относительно V Cramer V , скажем, tbl
- это двумерный факторный фрейм данных.
chi2 <- chisq.test(tbl, correct=F)
Cramer_V <- sqrt(chi2$/nrow(tbl))
Я подготовил тестовый фрейм данных с коэффициентами:
df <- data.frame(
group = c('A', 'A', 'A', 'A', 'A', 'B', 'C'),
student = c('01', '01', '01', '02', '02', '01', '02'),
exam_pass = c('Y', 'N', 'Y', 'N', 'Y', 'Y', 'N'),
subject = c('Math', 'Science', 'Japanese', 'Math', 'Science', 'Japanese', 'Math')
)
Q2: Тогда я бы хотел вычислить матрицу корреляции / ассоциации на кадре данных смешанного типа, например:
df <- data.frame(
group = c('A', 'A', 'A', 'A', 'A', 'B', 'C'),
student = c('01', '01', '01', '02', '02', '01', '02'),
exam_pass = c('Y', 'N', 'Y', 'N', 'Y', 'Y', 'N'),
subject = c('Math', 'Science', 'Japanese', 'Math', 'Science', 'Japanese', 'Math')
)
df$group <- factor(df$group, levels = c('A', 'B', 'C'), ordered = T)
df$student <- as.integer(df$student)