我有一個R數據集,我使用{Hmisc}包應用變量標籤。但是,當我將數據集導出到Stata(使用{foreign}包中的write.dta函數)時,變量標籤不會出現在Stata中。而是,變量名稱也會作爲變量標籤出現。該數據集包含這樣的變量:R到Stata:導出帶有變量標籤的數據框
X1 X2 X3
在Stata,我想爲變量有變量名稱本身相關的變量標籤:
X1「國家」 X2「PerCapitaIncome」 X3「Population」
當然,如果我可以在Stata中應用標籤而不是在R中應用標籤,但我試圖向僅使用R的研究員提供代碼。不幸的是,我需要將數據發送到數據存儲庫,這需要數據集文件格式在Stata中。
我試圖修改這裏提供的代碼:information from `label attribute` in R to `VARIABLE LABELS` in SPSS。它沒有工作。
我這是怎麼產生的變量標籤:
library(Hmisc)
label(data[,1]) <- "State"
label(data[,2]) <- "Per Capita Income"
label(data[,3]) <- "Population"
要導出到Stata的,我用這個:
library(foreign)
write.dta(data,file="C:/Users/Me/Desktop/data.dta")
基於其他職位,我想這使變量標籤「棒「:
df<-data
get.var.labels <- function(data){
a<-do.call(llist,data)
tempout<-vector("list",length(a))
for (i in 1:length(a)){
tempout[[i]]<-label(a[[i]])
}
b<-unlist(tempout)
structure(c(b),.Names=names(data))
}
attributes(df)$variable.labels=get.var.labels(df)
該代碼被寫入導出到SPSS,所以我沒有想到它的工作。儘管如此,我希望我可以找到類似的東西來爲Stata做同樣的事情。
任何幫助將不勝感激!
順便說一句,數據框確實有列名,但我希望它們對於數據管理的目的更具描述性。同時,我想保留原始列名(基本上是X1,X2,X3),這樣研究人員可以繼續以這種方式引用變量。 「
贊同,但這實質上是「代碼我不顯示你不工作」。這將有助於看到一個簡單的可重複使用的示例,例如您在R中擁有的內容,導出它的方式以及它在Stata中的外觀。數據加代碼,請。 –
如上所示 - 向我們展示「我使用Hmisc軟件包應用變量標籤」的含義。這是一個數據框?它沒有列名嗎?嘗試使用測試數據框或其他東西。否則,我們卡住了。 – Spacedman