【发布时间】:2017-10-13 08:45:40
【问题描述】:
我有一个格式如下的数据表:
Name X1234 X5555 X3000 X5000 X7500 X8745 X9451 X8338 X8377
Object 1 0+ 0+ 1+ 0+ 0+ 0+ 0+ 0+ 0+
Object 2 1+ 0+ 0+ 0+ 0+ 0+ 0+ 0+ 0+
Object 3 0+ 0+ 0+ 0+ 1+ 0+ 0+ 0+ 0+
我的数据表有几百行;假设对象 1 到 100。所有结构如下。每行,因此对象,包含一百多列。在其中一列(名称是动态的,但始终以 X 开头)中,我正在寻找值 1+。我要完成的下一步是添加一个额外的列,我们将其命名为 Number,并用行的值 == 1+ 的列名填充它。
所以,我想要的结果是:
Name X1234 X5555 X3000 X5000 X7500 X8745 X9451 X8338 Number
Object 1 0+ 0+ 1+ 0+ 0+ 0+ 0+ 0+ X3000
Object 2 1+ 0+ 0+ 0+ 0+ 0+ 0+ 0+ X1234
Object 3 0+ 0+ 0+ 0+ 1+ 0+ 0+ 0+ X7500
在 R 中,最好的方法是什么?我已经查找并尝试了 apply、which 等功能,但遗憾的是还没有找到可行的解决方案。
我对在 R 中开发脚本相当陌生,所以如果我的问题不清楚或难以回答,我深表歉意。
Python 中的类似情况: Find the column name which has the maximum value for each row
【问题讨论】:
-
如果同一行中有多个值为+1的列怎么办?
-
每一行只有一列的值为 1+。
-
相关:For each row return the column name of the largest value。只需在
max.col(即d == "1+")中使用条件,而不是原始数据。
标签: r