Я не новичок в R, но меня больше всего сбивает с толку следующее.
У меня есть кадр данных (хотя проблема в равной степени присутствует и для матриц) категориальных переменных, принимающих значения +1/-1, которые я хотел бы преобразовать в факторы.
mat <- matrix(sample(c(-1, +1), 16, replace = T), nrow = 4)
mat <- data.frame(mat)
Однако, используя
mat <- apply(mat, 2, factor)
превращает целые числа в символы вместо множителей:
> mat
[,1] [,2] [,3] [,4]
[1,] "-1" "1" "-1" "1"
[2,] "-1" "-1" "-1" "-1"
[3,] "-1" "1" "1" "1"
[4,] "-1" "-1" "1" "1"
Возможно, в том же духе (и у меня была проблема такого рода с некоторыми другими моими данными), попытка преобразовать имена символов в матрицах и фреймах данных в факторы приводит к более запутанному поведению:
mat2 <- matrix(sample(letters, 16, replace = T), nrow = 4)
> mat2
[,1] [,2] [,3] [,4]
[1,] "x" "m" "r" "e"
[2,] "u" "r" "b" "p"
[3,] "j" "p" "h" "j"
[4,] "k" "s" "e" "x"
mat2[,1] <- factor(mat2[,1])
> mat2
[,1] [,2] [,3] [,4]
[1,] "4" "m" "r" "e"
[2,] "3" "r" "b" "p"
[3,] "1" "p" "h" "j"
[4,] "2" "s" "e" "x"
любая помощь или разъяснение будут оценены.
?apply
, то заметите, что нигде не сказано, что возвращаемое значение будет фреймом данных. Всегда вектор или массив (т.е. матрица). И они могут содержать только один атомный тип (не факторы). - person joran   schedule 07.06.2013