【问题标题】:Extract haven_labelled vector's label as a vector of strings提取haven_labelled向量的标签作为字符串向量
【发布时间】:2020-02-07 20:11:05
【问题描述】:

我有一个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") 没有做我想做的事,因为它返回了一个命名向量:

#  one   two three 
#    1     2     3 

期望的输出:

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

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

【问题讨论】:

    标签: r label r-haven


    【解决方案1】:

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

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

    【讨论】:

    • @akrun 与 Q 无关,但你有没有用名称向量解决数据帧的子设置列表?其中,名称显示为某些 df 的列名和另一个 dfs 中的行。但是,这两个都是 df;s 列表的一部分?如果是这样,你能指点我你的溶胶吗,或者我可以再写一个Q
    • @user5249203 你的意思是lapply(lst1, function(dat) dat[intersect(names(dat), vec1)]) 行部分不清楚。如果您可以通过一些示例发布一个新问题,那将会很有帮助
    • 没有。我对您的类似回答投了赞成票,并添加了评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 2012-09-05
    • 1970-01-01
    • 2016-08-27
    • 2021-11-18
    相关资源
    最近更新 更多