Hadley Wickham的haven软件包应用于Stata文件,返回一个包含许多"已标记"类型列的元组.你可以用str()看到这些,例如:
$ MSACMSZ :Class 'labelled' atomic [1:8491861] NA NA NA NA NA NA NA NA NA NA ...
.. ..- attr(*, "label")= chr "metropolitan area size (cmsa/msa)"
.. ..- attr(*, "labels")= Named int [1:7] 0 1 2 3 4 5 6
.. .. ..- attr(*, "names")= chr [1:7] "not identified or nonmetropolitan" "100,000 - 249,999" "250,000 - 499,999" "500,000 - 999,999" ...
Run Code Online (Sandbox Code Playgroud)
如果我可以简单地将所有这些标记的向量提取到因子,那将是很好的,但我已经将标签属性的长度与每个向量中的唯一值的数量进行了比较,并且有时更长,有时更短.所以我认为我需要查看所有这些并决定如何单独处理每一个.
所以我想将labels属性的值提取到列表中.但是,这个功能:
labels93 <- lapply(cps_00093.df, function(x){attr(X, which="labels", exact=TRUE)})
Run Code Online (Sandbox Code Playgroud)
为所有变量返回NULL.
这是一个tibble vs数据帧问题吗?如何从tibble列中将这些属性提取到列表中?
请注意,标签向量已命名,我需要标签和名称.
根据@ Hack-R的请求,这里是我的数据的一小部分,由dput转换(我以前从未使用过).我申请了这段代码:
filter(cps_00093.df, …Run Code Online (Sandbox Code Playgroud)