如何比较r中矩阵的两列并在新向量中输出列名

如何比较r中矩阵的两列并在新向量中输出列名,r,matrix,vector,R,Matrix,Vector,我有一个2列1000行的矩阵 first second 1 0.96 1.34 2 0.67 1.22 3 1 0.87 .. 1000 12 11 我想比较矩阵每一行的两列,并用“first”或“second”值输出新向量中的值 我的输出应该是 second second first .... first 我想在R做这个 到目前为止,我在R if(data[2] > da

我有一个2列1000行的矩阵

         first   second
1        0.96     1.34
2        0.67     1.22
3        1        0.87
..
1000      12      11
我想比较矩阵每一行的两列,并用“first”或“second”值输出新向量中的值

我的输出应该是

second second first .... first
我想在R做这个

到目前为止,我在R

if(data[2] > data[1]) "second" else "first"

这将返回一个只有1个值的向量。请帮助

您需要if/else的矢量化版本。矩阵版本:

ifelse(data[,2] > data[,1], "second", "first")

类似于梅丽莎的回答。这不太清楚,但比ifelse更有效

colnames(data)[(data[, 2] > data[, 1]) + 1L]

比较将输出
TRUE
FALSE
(相当于
1
0
)。当我们加1时,它变成2或1。我们可以用它来索引列名。

length(ifelse(data[[2]]>data[[1]],“second”,“first”)返回1。有什么语法需要我修改吗?谢谢你的帮助,Gregor!固定的!谢谢@Gregor和Melissa投票支持