Я знаю, что ввод data.frame в cor автоматически даст матрицу корреляции (например, cor(mtcars)).
cor
cor(mtcars)
Но я удивляюсь, почему, когда я ввожу свой собственный data.frame (dat_w) ) до cor Я получаю приведенную ниже ошибку?
dat_w
У меня есть NA и Inf, но я использовал use = 'pairwise.complete.obs'.
NA
Inf
use = 'pairwise.complete.obs'
dat_w <- read.csv('https://raw.githubusercontent.com/izeh/n/master/w1.csv', stringsAsFactors = F) cor(dat_w, use = 'pairwise.complete.obs') # >Error : 'x' must be numeric
Мы можем найти столбцы, которые нумеруются c автоматически
i1 <- sapply(dat_w, is.numeric) out <- cor(dat_w[i1], use = 'pairwise.complete.obs')
Если мы хотим заменить NaN некоторым значением, то есть 0
NaN
out1 <- replace(out, is.nan(out)|is.na(out), 0)
Потому что ваш второй столбец (gender) не является цифрой c. Попробуйте:
gender
cor(dat_w[-2], use = 'pairwise.complete.obs')