将多列中的不同值重新编码为因子
假设我有一个看起来像这样的数据集:
df <- data.frame("age" = c(55, 21, 11),
"sex" = c("m", "m", "f"),
"a2" = c(0,1,0),
"a3" = c(0,0,0),
"a4" = c(0,1,0),
"b2" = c(0,0,1),
"b3" = c(0,0,0),
"b4" = c(1,0,1),
"c2" = c(0,1,0)
)
age sex a2 a3 a4 b2 b3 b4 c2
55 m 0 0 0 0 0 1 0
21 m 1 0 1 0 0 0 1
11 f 0 0 0 1 0 1 0
我如何才能将其转换为长格式并更改 a1-c1 列的值,以便每一列都具有其名称的值?例如在 a2 0=1 和 1=2 中?
我用pivot_longer这样试过:
df %>% pivot_longer(
cols = stars_with("a"),
names_to = "A"
)
我想要的输出如下所示:
age sex a2 a3 a4 b2 b3 b4 c2
55 m 1 1 1 1 1 4 1
21 m 2 1 4 1 3 1 2
11 f 1 1 1 2 1 4 1
谢谢!