2017-02-27 5 views
0

私は以下のようなかじりを持っています。値には文字「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> 

そして、私は他の2つ(またはそれ以上)を組み合わせた新しい列を作成したいが、列の名前を一致させるために「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

+4

whichを使用する前に、何度も質問:[max.col(is.na(DF '名(DF)! ))] –

+0

うわー、ありがとう! –

答えて

0

を使用してこの問題を解決することができるとは思わない私たちは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" 
関連する問題