Вычислить cor () в data.frame с нечисловыми данными

Я хочу рассчитать корреляционную матрицу для 10 столбцов data.frame, содержащих 2 столбца с факторами. Если я запускаю cor(data.frame), я получаю нечисловую ошибку. Есть ли другой способ запустить его, кроме создания нового фрейма данных только с числовыми столбцами?


person theryan    schedule 07.10.2014    source источник


Ответы (1)


Я не уверен, как выглядит ваш фрейм данных. Но у меня сложилось впечатление, что вы пытаетесь провести корреляцию для всех столбцов, которые у вас есть. Я оставляю вам следующее.

#sample data
subject <- 1:100
area <- rep(c("a", "b", "c", "d", "e"), each = 20)
a <- runif(100, 0, 50)
b <- runif(100, 20, 60)
c <- runif(100, 10, 70)

foo <- data.frame(subject, area, a,b,c, stringsAsFactors = FALSE)

cor(foo[,c(3:5)], use = "everything") #select columns with numbers

#          a           b           c
#a 1.0000000  0.16797099  0.11609168
#b 0.1679710  1.00000000 -0.01162148
#c 0.1160917 -0.01162148  1.00000000
person jazzurro    schedule 07.10.2014
comment
Если subject также фактор. cor(foo[sapply(foo, is.numeric)]) тоже подойдет. +1 - person akrun; 07.10.2014
comment
@akrun Спасибо за продолжение. Это поможет ОП. - person jazzurro; 07.10.2014