R 'memisc' package: почему «as.data.frame ()» изменил 0/1 значений data.set на 1/2 в data.frame? - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь подготовить файл данных SPSS .sav с данными опроса для выполнения анализа в R. Теперь у меня есть проблема, что некоторые переменные с двоичными значениями 0/1 (означающие нет / да) были неожиданно преобразованы.

Я использовал пакет memisc для импорта данных в качестве data.set объекта.

Dset.core <- spss.system.file(file="C://..../data_coded.sav",
                            varlab.file=NULL,
                            codes.file=NULL,
                            missval.file=NULL,
                            count.cases=TRUE,
                            to.lower=FALSE      
)

Все работало нормально, как я видел из str() и codebook() выходы.Один пример переменной 0/1 $ AMEVYES (метки 0 = нет, 1 = да) показан здесь:

str(Dset.core)

Набор данных с 1999 об.из 106 переменных:

(...)
$ AMEVYES: Nmnl.элемент с 2 метками для 0,1 число 0 0 0 0 0 0 0 0 0 1 ...

Теперь я хочу преобразовать специальный объект data.set, созданный memisc во фрейм данных с:

Dset2Df.core <- as.data.frame(Dset.core)

Как и предполагалось, номинальная переменная 0/1 была заменена на факторную переменную с соответствующими уровнями.Но по какой-то странной причине эта процедура также изменила значения переменных, с 0/1 на 1/2 , как в этом примере вывода:

str(Dset2Df.core) 

'data.frame': 1999 obs.из 106 переменных:

(...) $ AMEVYES: Коэффициент w / 2 уровня "Нет", "Да": 1 1 1 1 1 1 1 1 1 2 ...

Почему это произошло, и самое главное, как я могу предотвратить это ?Большое спасибо за подсказку!

PS: Я довольно новичок в R и новичок в этом форуме, поэтому, пожалуйста, извините, если я пропустил какие-либо передовые практики при формулировании своего вопроса.

1 Ответ

0 голосов
/ 04 апреля 2019

As Carpentries заявляет:

Факторы хранятся в виде целых чисел и имеют метки, связанные с этими уникальными целыми числами .Хотя факторы выглядят (и часто ведут себя) как символьные векторы, на самом деле они представляют собой целые числа, и вам следует быть осторожными, рассматривая их как строки.

Факторы внутренне сохраняются как целые числа, начиная с 1. Вы не можете изменить эти внутренние сохраненные значения.Однако вы можете изменить их метки ("Yes", "No") или (0, 1).

...