提取 haven_labelled 向量的标签作为字符串向量

Extract haven_labelled vector's label as a vector of strings

我有一个 haven_labelled 向量,我想从中提取它的标签作为字符串向量:

library(haven)
vec <- structure(c(1, 2, 3, 1, 2, 3), label = "Región", labels = c(`one` = 1, `two` = 2, `three` = 3), 
                 class = "haven_labelled")

vec

#   <Labelled double>: Región
#[1] 1 2 3 1 2 3

#Labels:
# value label
#     1   one
#     2   two
#     3 three

attr(vec, "labels") 没有做我想做的事,因为它 returns 一个命名向量:

#  one   two three 
#    1     2     3 

期望的输出:

c("one", "two", "three")

我查阅了很多文档但无法找到解决方案,因此非常欢迎您的帮助!

它是一个 named 向量,所以使用 names 提取该向量的 names

names(attr(vec, "labels"))
#[1] "one"   "two"   "three"