Я работаю в R, но мне нужно предоставить некоторые данные в формате SPSS как с «метками переменных», так и с «метками значений», и я м вроде застрял.
Я добавил метки переменных к своим данным, используя функцию Hmisc
's label
. Это добавляет метки переменных как label attribute
, что удобно при использовании description()
из пакета Hmisc
. Проблема в том, что я не могу заставить функцию write.foreign()
из пакета foreign
распознавать эти метки как метки переменных. Я предполагаю, что мне нужно изменить write.foreign()
, чтобы использовать атрибут метки
как метку переменной
при записи файла .sps
.
Я просмотрел список R и stackoverflow, но смог найти только сообщение от 2006 года в списке R, касающееся экспорта меток переменных в SPSS из R, и оно, похоже, не отвечает на мой вопрос. .
Вот мой рабочий пример.
# First I create a dummy dataset
df <- data.frame(id = c(1:6), p.code = c(1, 5, 4, NA, 0, 5),
p.label = c('Optometrists', 'Nurses', 'Financial analysts',
'', '0', 'Nurses'), foo = LETTERS[1:6])
# Second, I add some variable labels using label from the Hmisc package
# install.packages('Hmisc', dependencies = TRUE)
library(Hmisc)
label(df) <- "Sweet sweet data"
label(df$id) <- "id !@#$%^"
label(df$p.label) <- "Profession with human readable information"
label(df$p.code) <- "Profession code"
label(df$foo) <- "Variable label for variable x.var"
# modify the name of one varibes, just to see what happens when exported.
names(df)[4] <- "New crazy name for 'foo'"
# Third I export the data with write.foreign from the foreign package
# install.packages('foreign', dependencies = TRUE)
setwd('C:\\temp')
library(foreign)
write.foreign(df,"df.wf.txt","df.wf.sps", package="SPSS")
list.files()
[1] "df.wf.sps" "df.wf.txt"
Когда я проверяю файл .sps
(см. содержимое файла 'df.wf.sps' ниже), мои метки переменных
идентичны к моим именам переменных
, за исключением foo, которое я переименовал в «Новое сумасшедшее имя для« foo »». Эта переменная имеет новое и, казалось бы, случайное имя, но правильную метку переменной .
Кто-нибудь знает, как экспортировать атрибуты меток и имена переменных как «метки переменных» и «имена меток» в файл .sps
? Может быть, есть более разумный способ хранить «метки переменных», чем мой текущий метод?
Будем признательны за любую помощь.
Спасибо, Эрик
Содержимое экспорта 'df.wf.sps' с использованием write.foreign
из пакета Foreign
DATA LIST FILE= "df.wf.txt" free (",")
/ id p.code p.label Nwcnf.f. .
VARIABLE LABELS
id "id"
p.code "p.code"
p.label "p.label"
Nwcnf.f. "New crazy name for 'foo'"
.
VALUE LABELS
/
p.label
1 "0"
2 "Financial analysts"
3 "Nurses"
4 "Optometrists"
/
Nwcnf.f.
1 "A"
2 "B"
3 "C"
4 "D"
5 "E"
6 "F"
.
EXECUTE.
Я ищу способ настроить write.foreign
для записи файла .sps
, где эта часть,
[…]
VARIABLE LABELS
id "id"
p.code "p.code"
p.label "p.label"
Nwcnf.f. "New crazy name for 'foo'"
[…]
выглядит так,
[…]
VARIABLE LABELS
id "id !@#$%^"
p.code "Profession code"
p.label "Profession with human readable information"
"New crazy name for 'foo'" "New crazy name for 'foo'"
[…]
Последняя строка немного амбициозна, мне действительно не нужны переменные с пробелами в именах, но я бы хотел, чтобы атрибуты меток были переданы в файл .spas (который я создаю с помощью R).