У меня есть фрейм данных, содержащий данные анкеты с платформы онлайн-опроса.Я пытаюсь записать части этого фрейма данных в файл SPSS с haven::write_sav()
у tidyverse, но у меня есть некоторые проблемы с обработкой данных, которые возятся с данными.
Дело в том, что SPSS позволяет толькопеременные уровни, которые короче 120 символов.У меня есть уровни переменных, которые превышают этот предел, что не позволяет мне записать файл *.sav
с фреймом данных.
Поэтому я хотел урезать каждый возникающий уровень каждого столбца фрейма данных до <= 120 символов, чтобы убедиться, что процесс записи не прерывается, но я не могу понять, как управлять всеми уровнями из всех столбцов. </p>
Я извлекаю уровни следующим образом:
df %>%
lapply(levels)
Но потом я просто потерял, как обращаться со списком, который я получаю взамен, тем более что большинство элементов этого списка просто не имеют никаких уровней (и им присваивается значение NULL, используя lapply).
Я пробовал что-то подобное, но потом haven::write_sav()
записывает в таблицу SPSS только «1» вместо фактического значения для каждой переменной:
df <- df %>%
as.matrix() %>%
str_trunc(120) %>%
as.data.frame()
haven::write_sav(df, "test.sav")
Я ищу решение этой проблемы по-разному, если это возможно, и любая помощь высоко ценится!