2016-10-04 7 views
-2

が含まれているために、私は次のようなデータを持っている:R:どのようにどの列が同じ行に1

df 
col1 col2 col3 
0  0 1 
1  0 0 

と私は結果が値1とリターンを持っている列の各行に言って取得したいと思い私の列の名前。考慮の列を持つ各行には、正確に1つの「1」しかありません。他の値は1よりもはるかに大きくなります.3つの列だけでデータの新しいコピーを作成することなく、列名を抽出する効率的な方法があるかどうかを知りたいと思います。

+0

'max.col(DF)'や '名(DF)[max.col(DF)]あなたが名前 –

+2

か何かをしたい場合は、'、ちょうど何か –

+0

を試してみてください私は質問を編集し、これがあります各行で最大値を見つけるのと同じことではない – lll

答えて

0
apply(df, 1, function(row_tmp){ 
    which(row_tmp == 1) 
}) 
+0

私の答えを受け入れてくれてありがとう。私はあなたがカラム名を抽出するように頼んだことに気づき、カラム名を得るために関数内の部分を 'names(df)[which(row_tmp == 1)] 'に変更するだけです。 –