Пакет rlms
предназначен для работы с данными исследования RLMS в R. Пакет можно установить командами:
install.packages("devtools")
devtools::install_github("bdemeshev/rlms")
Известна одна ситуация, в которой пакет rlms
не ставится при выполнении этих команд: давно необновлённые другие пакеты, в частности, пакет foreign
. В Rstudio пакеты можно обновить через меню Tools
-Check for package updates
. Можно обновить пакет и вручную, введя команду install.packages("foreign")
(вместо foreign
можно написать имя другого старого пакета). Пакеты устанавливается один раз, повторять эти две команды каждый раз при работе с данными RLMS не нужно :)
Переходим к работе! Данные RLMS можно скачать с официального сайта RLMS. А далее --- загрузить командой:
library("rlms")
df <- rlms_read("r21i_os24a.sav")
При загрузке данных RLMS возникает вопрос, как конвертировать меченные (labelled) переменные, которые использует SPSS, в факторные (factor) или числовые (numeric), которые использует R. Меченная переменная, это числовая переменная, у которой к некоторым, возможно ко всем значениям, добавлены текстовые описания (метки). По умолчанию функция read_rlms()
пытается сама определить во что лучше перевести меченные переменные:
Можно сохранить меченные переменные как они есть:
df <- rlms_read("r21i_os24a.sav", haven = "labelled")
Пакет содержит ряд функций для работы с меченными переменными: is_labelled()
, all_labelled()
, get_labels()
, get_label()
, ...
Также можно сохранить значения всех меченных переменные в виде численных кодов:
df <- rlms_read("r21i_os24a.sav", haven = "numeric")
Если по каким-то причинам нужно читать файл с помощью пакета foreign
, то:
df <- rlms_read_legacy("r21i_os24a.sav")
Пакет автоматически сохраняет метаданные о названии переменных:
var_meta <- rlms_show_variable_labels(df)
head(var_meta)
Метаданные о помеченных значениях:
value_meta <- rlms_show_value_labels(df)
head(value_meta)
Авторы рекомендуют использовать пакет dplyr
для дальнейшей обработки данных.
В частности, загружаемому набору данных автоматически добавляется класс tbl
, чтобы избежать существенных затрат времени при случайной команде вывести весь массив df
на экран:
library("dplyr")
df
При работе с панельными данными удобно сначала отконвертировать все .sav
файлы в .Rds
формат. Это ускоряет функцию rlms_load()
:
rlms_sav2rds("~/Downloads/Все выборки/")
Примечание: Для корректной распаковки архива с русскими буквами (используется кодировка CP866) на маке можно воспользоваться архиватором the Unarchiver.
Можно загружать данные по номеру волны:
df <- rlms_load("~/Downloads/Все выборки/",
wave = 20, sample = "all", level = "individual")
Расшифровка имени файла:
rlms_fileinfo("r10hall23.sav")
Планы:
lintr
plm
. Пакет psData
похоже не активен. Синтаксис в жанре ???
df <- rlms_ipanel(wave = 5:22,
~ educ + father(educ) + spouse(income + educ) + spouse(income, lag = 1))
не изобретать велосипед про лаги --- воспрос в типе подклейки понятия родственников из rlms и очевидные обобщения (cibling, family, spouse) если родственников несколько --- простая агрегирующая функция (sum/mean) или всех в таблицу?
The rlms
-package is designed to facilitate the processing of RLMS data in R. The package may be installed via:
install.packages("devtools")
devtools::install_github("bdemeshev/rlms")
Data may be loaded with one simple command:
library("rlms")
df <- rlms_read("r21i_os24a.sav")
The package automatically saves the metadata about variable full names:
var_meta <- rlms_show_variable_labels(df)
head(var_meta)
Metadata on cathegory values:
value_meta <- rlms_show_value_labels(df)
head(value_meta)
Authors recommend to use the package dplyr
for further data processing.
In particular, to avoid occasional printing of whole data.frame the class tbl
is
automatically added:
library("dplyr")
df
It may be convenient to convert all .sav
files to .Rds
format. This will speed up the rlms_load()
function.
rlms_sav2rds("~/Downloads/Все выборки/")
Note: To correctly extract cyrillic folder names (CP866 encoding is used) on mac os one may use the free Unarchiver.
One may load data by wave number:
df <- rlms_load("~/Downloads/Все выборки/",
wave = 20, sample = "all", level = "individual")
Or decipher filename:
rlms_fileinfo("r10hall23.sav")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.