将信息合并在一列中

R18*_*R18 1 r

我有一个如下所示的数据框:

A <- data.frame(Red = c(1,0,0,0),
                Blue = c(0,1,0,1),
                Yellow = c(0,0,1,0))
Run Code Online (Sandbox Code Playgroud)

我想结合这些信息以获得此专栏:

B <- data.frame(Colour = c("Red", "Blue", "Yellow", "Blue"))
Run Code Online (Sandbox Code Playgroud)

即,出现 1 的列的名称。

GKi*_*GKi 5

您可以使用的max.col子集。namesA

names(A)[max.col(A)]
#[1] "Red"    "Blue"   "Yellow" "Blue"
Run Code Online (Sandbox Code Playgroud)

或者which与 一起使用arr.ind

names(A)[which(t(A == 1), TRUE)[,1]]
#[1] "Red"    "Blue"   "Yellow" "Blue" 
Run Code Online (Sandbox Code Playgroud)