маркировка в R (добавить несколько меток из SPSS)

У меня возникли проблемы с подготовкой данных R (импортированных из SPSS), и я не смог найти решение в Интернете.

Проблема: извлечь метки для подгруппы из фрейма данных:

У меня есть фрейм данных с 42 переменными (столбцами) и еще один фрейм данных, который я сделал для этикеток. Я создал фрейм данных метки с помощью этого кода:

labelspss <- read.spss("Ma.sav")

la <- as.data.frame(attr(labelspss, "variable.labels"))

la$`attr(labelspss, "variable.labels")`<- as.character(la$`attr(labelspss, "variable.labels")`)

Столбец 0 содержит имена переменных; столбец 1 содержит метку из SPSS. Теперь я хочу извлечь эти метки для подгруппы из 42 столбцов и добавить их к своим данным.

Я уже сделал это вручную для другого фрейма данных: создал вектор для этикеток и пометил их с помощью пакета hmisc.

Но сейчас 42 переменных - это слишком много для этого. Я думаю, мне нужно что-то, что создает именованный вектор символов из фрейма данных метки. Что-то, что извлекает имя переменной из rownames (для определенного количества строк, например, 140–150) и устанавливает для него значение метка переменной в столбце 1. Думаю, тогда я мог бы использовать label () из пакета Hmisc и сделать все остальное.

Спасибо за любую помощь!


person Community    schedule 11.04.2018    source источник
comment
Вы пробовали haven package? вы можете импортировать свой файл с помощью df <- read_spss(Ma.sav), и если он уже помечен в spss, вы можете поменять местами все метки с помощью labelled_spss(df). Извините, если это не ответ на ваш вопрос, это просто комментарий.   -  person Stephan    schedule 11.04.2018


Ответы (1)


Вы можете извлечь rownames, используя tibble::rownames_to_column().

person DJV    schedule 11.04.2018
comment
Спасибо, этот первый шаг сработал. Теперь у меня есть фрейм данных la с двумя символьными столбцами - но мне нужно что-то, что делает то, что я делал здесь вручную: var.labels = c (number = ID, gr3 = boy vs. girl) ... Итак, он должен извлечь имя (1. столбец), которое также находится в моем реальном фрейме данных и должно объединять его с информацией в столбце 2. (метка / описание) ... - person ; 11.04.2018
comment
Не уверен, что понял, что вы хотите. Вы имеете в виду, что если, например, у вас есть такой data.frame: df ‹- data.frame (colA = c (яблоко, хлеб, молоко), colB = c (Два, один, четыре)) Вы хотите, чтобы это произошло? df% ›% mutate (объединить = вставить (colA, colB, sep =)) - person DJV; 11.04.2018