如何用标签替换列值
How to replace column values with their label
我导入了一个 .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
基本上我不需要带标签的数据,但是我想要 'ind' 作为列值,所以
data
x y
1 1 hello
2 2 bye
3 3 see you
4 4 bye
5 5 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
如果是这样,为了获得预期的结果,您可以这样做:
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
我导入了一个 .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
基本上我不需要带标签的数据,但是我想要 'ind' 作为列值,所以
data
x y
1 1 hello
2 2 bye
3 3 see you
4 4 bye
5 5 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
如果是这样,为了获得预期的结果,您可以这样做:
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