我在R工作,但我需要与两个“变量标签”和“值标签”带来的SPSS格式的一些数据,我有点卡住了。
我已经添加变量标签使用我的数据Hmisc
的label
功能。 这个附加变量标签作为label attribute
,使用时这是很方便describe()
从Hmisc
包。 问题是,我不能让write.foreign()
函数,从foreign
包,认识到这些标签作为变量标签。 我想我需要修改write.foreign()
使用label attribute
作为variable label
写入时.sps
文件。
我看着将R名单,并在计算器,但我只能找到从2006年就出口将R名单后来自R可变因素标签SPSS ,它似乎并没有回答我的问题。
这是我工作的例子,
# 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',
'<NA>', '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”下面的内容)我的variable labels
等同于我的variable names
,除了富,我重命名为“为‘富’新疯狂的名字。” 这个变量有一个新的和得体随机名称,但正确的variable label.
有谁知道如何获取标签的属性并导出为“变量标签”和“标签名称”到一个变量名.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.
更新2012年4月16日15时54分24秒PDT;
我所寻找的是调整的方式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)。