将多列中的不同值重新编码为因子

假设我有一个看起来像这样的数据集:

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

谢谢!

以上是将多列中的不同值重新编码为因子的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>