2016-10-04 27 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)]'来获取列名。 –