R 如何用列值的标签替换列值

R 如何用列值的标签替换列值,r,extract,R,Extract,我导入了一个.sav文件和一个简单的示例: library("labelled") data <- data.frame(x = 1:5, y = c("a", "b", "c", "b", "a")) x y 1 1 a 2 2 b 3 3 c 4 4 b 5 5 a stack(attr(data$y, "labels")) valu

我导入了一个.sav文件和一个简单的示例:

library("labelled")
data <- data.frame(x = 1:5, y = c("a", "b", "c", "b", "a"))

  x y
1 1 a
2 2 b
3 3 c
4 4 b
5 5 a

stack(attr(data$y, "labels"))

  values     ind
1      a   hello
2      b     bye
3      c see you
4      b     bye
5      a   hello

你重复的例子不起作用

你是想写这个吗

library("labelled")

data <- data.frame(x = 1:5, y = c("a", "b" ,"c" ,"b" ,"a"))
data$y <- labelled(data$y, c("hello" = "a", "bye" = "b", "see you" = "c"))
stack(attr(data$y, "labels"))
#>   values     ind
#> 1      a   hello
#> 2      b     bye
#> 3      c see you
库(“带标签”)
数据1 a你好
#>再见
#>再见
如果是,要获得预期结果,可以执行以下操作:

data$y <- to_factor(data$y)

data
#>   x       y
#> 1 1   hello
#> 2 2     bye
#> 3 3 see you
#> 4 4     bye
#> 5 5   hello
数据$y x y
#>你好
#>2.再见
#>再见
#>再见
#>你好

您共享的数据没有标记,我想这就是为什么我运行
堆栈(attr(data$y,“labels”)
时堆栈中出现
错误的原因。默认值(attr(data$y,“labels”):至少需要一个向量元素
data$y <- to_factor(data$y)

data
#>   x       y
#> 1 1   hello
#> 2 2     bye
#> 3 3 see you
#> 4 4     bye
#> 5 5   hello