首页 > 解决方案 > 将多个二项式列构造为一列

问题描述

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

X1  X2     X3
Red NA     NA
NA  Blue   NA
NA  Green  NA 
NA  NA     Red
NA  Yellow NA
NA  NA     Blue

我需要以这种形式转换:

   Result
   Red
   Blue
   Green
   Red
   Yellow
   Blue

先感谢您。

标签: rdatabasedplyrdata.tableformat

解决方案


base R,我们可以使用max.col

data.frame(Result = df1[cbind(seq_len(nrow(df1)), 
          max.col(!is.na(df1), 'first'))])

-输出

#  Result
#1    Red
#2   Blue
#3  Green
#4    Red
#5 Yellow
#6   Blue

数据

df1 <- structure(list(X1 = c("Red", NA, NA, NA, NA, NA), X2 = c(NA, 
"Blue", "Green", NA, "Yellow", NA), X3 = c(NA, NA, NA, "Red", 
NA, "Blue")), class = "data.frame", row.names = c(NA, -6L))

推荐阅读