Почему r не кодирует коэффициенты в 0 и 1, как spss для вычисления коэффициента $ r $? - PullRequest
0 голосов
/ 28 сентября 2018

В SPSS вы можете ввести данные в виде 0 и 1, а затем указать, что данные являются номинальными.Затем вы можете вычислить все, что хотите, например, корреляцию Пирсона или Спирмена.Однако в R, когда вы вводите данные, вы должны указать, что эти данные являются фактором, даже если он числовой, вы должны указать, что это фактор, тогда он будет рассматриваться как строка.Теперь, когда я использую cor (), я не работаю, потому что он нуждается в числовом вводе.

Как вы справляетесь с этим?

Пример приведен ниже:

data(Titanic)
Titanic <- data.frame(Titanic) 
cor(Titanic$Sex, Titanic$Freq)

1 Ответ

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

Как с этим справиться?

Два способа:

  1. Подать данные в cor(), как функция ожидает от вас:
data(Titanic)
Titanic <- data.frame(Titanic) 
cor(Titanic$Sex, Titanic$Freq) # Bad, Titanic$Sex is a factor, not numeric
# Error in cor(Titanic$Sex, Titanic$Freq) : 'x' must be numeric
cor(as.numeric(Titanic$Sex), Titanic$Freq) # Good, cor() expects numeric
# [1] -0.294397

Если вы не хотите вводить as.numeric, вы можете просто использовать c():

cor(c(Titanic$Sex), Titanic$Freq)
# [1] -0.294397
Если вы не хотите делать это все время, вы можете просто сделать свой собственный cor(), чтобы сделать это за вас:
cor <- function(x, y, ...) {
    if ( !is.numeric(x) ) {
        message("Converting x to numeric.")
        x <- as.numeric(x)
    }
    if ( !is.numeric(y) ) {
        message("Converting y to numeric.")
        y <- as.numeric(y)
    }
    return(stats::cor(x, y, ...))
}

data(Titanic)
Titanic <- data.frame(Titanic) 
cor(Titanic$Sex, Titanic$Freq)

# Converting x to numeric.
# [1] -0.294397

Почему не Rделать такие вещи, как SPSS?

  1. Это другое программное обеспечение.Возможно, вы в течение некоторого времени строили определенные предположения или ожидания, работая с одним конкретным программным обеспечением, но вы должны потерять ожидание того, что другое программное обеспечение, или , будет работать так же.
  2. Путь R может быть более подходящим.Некоторое обсуждение можно найти в комментарии PoGibas , а также о перекрестной проверке здесь .
...