我有一个像下面这样的元素。看到它使用字符“Y”作为值。
require(tidyverse)
df <- data_frame(a = c('Y', NA, 'Y'), b = c(NA, 'Y', NA))
df
# A tibble: 3 × 2
a b
<chr> <chr>
1 Y <NA>
2 <NA> Y
3 Y <NA>
我想创建一个新列,结合其他两个(或更多)但是更改“Y”以匹配列的名称。在这种情况下,“a”和“b”。比如这个
# A tibble: 3 × 3
a b c
<chr> <chr> <chr>
1 Y <NA> a
2 <NA> Y b
3 Y <NA> a
我非常有信心每一行中只有一个“Y”。我认为我无法使用gather
或mutate
答案 0 :(得分:0)
我们可以将which
与arr.ind=TRUE
ind <- which(!is.na(df), arr.ind = TRUE)
df$c <- names(df)[ind[,2][order(ind[,1])]]
df$c
#[1] "a" "b" "a"