Получить переменные заметки Stata в R - PullRequest
0 голосов
/ 05 сентября 2018

Я импортировал файл Stata dta в R с использованием пакета readstata13 .

Переменные имеют примечания, которые содержат полную длину вопросов. Я нашел функцию attr(), с помощью которой я могу делать несколько вещей, таких как извлечение имен переменных (attr(df, name)), извлечение меток переменных (attr(df, "var")) и значений меток (attr(df, "label")). Тем не менее, я не нашел способ извлечения переменных заметок.

Есть ли способ сделать это?

Ниже приведены несколько строк кода Stata, которые создают файл dta с двумя переменными и примечаниями к переменным, которые можно импортировать в R.

clear
input int(mpg weight)
34 1800
18 3670
21 4060
15 3720
19 3400
41 2040
25 1990
28 3260
30 1980
12 4720
end
note mpg: Mileage (mpg)
note weight: Weight (lbs.)
save "~/mpg_weight.dta", replace

1 Ответ

0 голосов
/ 05 сентября 2018

EDIT

Вы можете сделать это непосредственно в новых версиях readstata13() следующим образом:

df = read.dta13("~/mpg_weight.dta")
notes = attr(df, "expansion.fields")

Будет создан список, содержащий имя переменной, имя характеристики и содержимое поля характеристики Stata.


Вот быстрый обходной путь на примере вашей игрушки:

clear

input int(mpg weight)
34 1800
18 3670
21 4060
15 3720
19 3400
41 2040
25 1990
28 3260
30 1980
12 4720
end

note mpg: this is the first note
note mpg: and this is the second
note mpg: here's a third
note weight: Weight (lbs.)
save "~/mpg_weight.dta", replace

ds
local varlist `r(varlist)'

foreach var of local varlist {
    generate notes_`var' = ""
    forvalues i = 1 / ``var'[note0]' {
        replace notes_`var' = "``var'[note`i']'" in `i'
    }
}

export delimited notes_* using notes_mpg_weight.dta.csv, replace

Затем вы можете просто импортировать все в R как строки и перейти оттуда.

...