r - 收集虚拟变量和重新编码因子

我有

df<-data.frame(id=c(1,2,3,4,5),one=c(0,1,0,0,0), two=c(0,0,1,0,0), three=c(0,0,0,1,0), four=c(0,0,0,0,1))
df

我想将虚拟变量 1、2、3 和 4 收集到变量 out 中,我想重新编码 out 变量的级别,以便 one="A", two="B", three= “C”和四=“D”

df.out<-data.frame(id=c(1,2,3,4,5),out=c(NA, "A","B","C","D" ))
df.out

可以在 dplyr 中实现吗?我尝试收集,但我得到不同长度的输出 data.frame,我认为枢轴更宽和更长不是正确的选择。

df 是更大、更宽和更长数据框的一部分。我希望能够指定要合并的列以及如何重新编码。理想的 tidyverse 解决方案

我正在寻找与 this 完全相反的词

最佳答案

你可以做到,

LETTERS[ifelse(rowSums(df[-1]) == 0, NA, max.col(df[-1]))]
#[1] NA  "A" "B" "C" "D"

https://stackoverflow.com/questions/69673762/

相关文章:

domain-driven-design - DDD 和 CQRS : use multiple r

javascript - typescript :如何定义具有许多未知键的对象

javascript - javascript中的执行顺序

java - 流分组后如何聚合分组实体

php - 从字符串中的引号中提取时如何包含等号和引号?

python - 如何在空字典进入/读取输入列表时将新键添加到空字典?

flutter - 如何使 ExpansionTile 尾随图标旋转?

php - Laravel 验证规则 : required_without

lua - 波浪号本身在 Lua 中是什么意思?

javascript - 如何将字符串javascript类型的两位小数相乘