2016-11-06 45 views
0

我使用haven包中的read_sav函數導入SPSS文件。因此,我有列名稱和關聯標籤(已標記類別)。R - 在使用來自避風港包的read_sav後的I子集數據幀時丟失標籤

我用subset子集數據框時丟失了標籤。我可以使用索引編號data[i]的解決方法,但這種行爲是否存在錯誤?

這是一個簡單的例子。

DataForExample <- structure(list(q0001_0001 = structure(c(2, NA, 5, 4, NA), label = "être plus rapide", class = "labelled", labels = structure(c(1, 
2, 3, 4, 5), .Names = c("non, pas du tout", "non, pas vraiment", 
"oui, un peu", "oui, tout à fait", "je ne sais pas"))), q0001_0002 = structure(c(NA, 
3, NA, 4, 2), label = "être plus fiable", class = "labelled", labels = structure(c(1, 
2, 3, 4, 5), .Names = c("non, pas du tout", "non, pas vraiment", 
"oui, un peu", "oui, tout à fait", "je ne sais pas")))), .Names = c("q0001_0001", 
"q0001_0002"), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-5L)) 

View(DataForExample) # OK 
Toto <- subset(DataForExample, select = q0001_0001) 
View(Toto) # NOK : the labels disappeared 
Toto2 <- DataForExample[1] 
View(Toto2) # OK 

感謝

+0

'DataForExample [「q0001_0001」]' - 您也可以使用名稱子集。 – thelatemail

+0

謝謝,但主要問題仍然存在。 – Kumpelka

+0

我的觀點是,我建議的子集不會丟失標籤。 – thelatemail

回答

2

相同的答案與你以前的有關排序問題。您需要加載包,並支持類labelled的子集操作。最好在haven之後加載它。至少有兩個包含此類支持的軟件包:Hmiscexpss。不需要額外的操作,只需要library(expss)library(Hmisc)