Я хочу использовать функцию cor (), но вывод говорит, что 'y' должно быть числовым.Проблема в том, что она числовая - PullRequest
0 голосов
/ 28 ноября 2018

Я читаю данные из файла xlsx.Мой код чтения начинается примерно так:

ecommerce<-read.xlsx("C:\\Users\\Thomas Rhee\\Documents\\GGU\\GGU Fall 2018\\Tools for Business Analytics\\Final Project\\ecommerce.xlsx", sheet = "data", startRow = 1, colNames = TRUE, col = c(1,2,3,4,5,6,7,8));
attach(ecommerce)
names(ecommerce)

Один из столбцов - "цена".Выглядит это так:

price
<chr>
329.98  
324.83999999999997  
324.83  
350 
308 
310

Я использовал sapply, чтобы узнать, что в столбце моей цены указывается класс символов.Я использую следующий код, чтобы преобразовать его в числовой:

ecommerce$price <- as.numeric(as.character(ecommerce$price))

Я снова проверил, и это сработало.Я попытался набрать следующее и получить этот вывод:

cor(rank, price) 

Ошибка в cor (rank, price): 'y' должно быть числовым

Я потерян,Я также новичок в этом, поэтому я открыт для предложений здесь.Пожалуйста, сделайте это для меня.

1 Ответ

0 голосов
/ 28 ноября 2018

Это хороший пример, почему вы не должны использовать attach.

d <- data.frame(x = 1:3)
attach(d)
x ## now available because of attach
# [1] 1 2 3

d$x <- LETTERS[1:3]
x ## however this still refers to the original values of d$x
# [1] 1 2 3
d$x
# [1] "A" "B" "C"

Это означает, что вы изменили свои исходные данные во фрейме данных, но при вызове cor(.) вы ссылаетесь на исходные данные (тот, который был прикреплен)

Итак, чтобы решитьПри возникновении проблемы удалите команду attach и укажите столбцы напрямую (после преобразования их в числовой):

cor(ecommerce$rank, ecommerce$price)

Технически, вы можете повторно присоединить ecommerce снова, после того, какВы изменили его, но из-за этих проблем я настоятельно рекомендую вам вообще не использовать attach.

...