2016-10-04 41 views
-2

我有一個數據,如在以下幾點:R:怎麼這列包含1個在同一行

df 
col1 col2 col3 
0  0 1 
1  0 0 

,我希望得到的結果,其列的值爲1,並返回每個行中說列名給我。在考慮列的每一行中,只有一個「1」。還有其他的值會比1大得多。如果不用僅有的三列創建新的數據副本,我想知道是否有有效的方法來提取列名。

+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)]'來獲取列名。 –

相關問題