【问题标题】:R: how to which columns contains 1 in the same row [duplicate]R:如何在同一行中包含1的列[重复]
【发布时间】:2016-10-04 17:57:45
【问题描述】:

我有如下数据:

df
col1 col2 col3
0     0   1
1     0   0

我想在每一行中得到一个结果,说明哪一列的值为 1,并将列名返回给我。在具有考虑列的每一行中,只有一个“1”。还有其他值会比 1 大得多。如果不使用仅有的三列数据制作新副本,我想知道是否有有效的方法来提取列名。

【问题讨论】:

  • 如果你想要名字,试试max.col(df)names(df)[max.col(df)]
  • 什么的,试试看
  • 我编辑了问题,这与在每一行中查找最大值不同

标签: r data-manipulation


【解决方案1】:
apply(df, 1, function(row_tmp){
    which(row_tmp == 1)
})

【讨论】:

  • 感谢您接受我的回答。我意识到您要求提取列名,只需将函数中的部分更改为names(df)[which(row_tmp == 1)] 即可获取列名。
猜你喜欢
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
  • 2012-07-21
  • 1970-01-01
  • 2023-03-27
  • 2015-08-16
相关资源
最近更新 更多