要按行预先确定的值获取矩阵列号

时间:2018-03-24 19:07:15

标签: r

我是编码的新手,我正在使用r.3.0与windows10。我有一个64列和17000行的矩阵。按行,每列包含1到64之间的数字,没有重复或缺少值。我希望在所有列中搜索每一行的值为1,并返回包含1的列名或数字。

以下是我的尝试:

LargeVector1 <- c(1)
which(apply(matrix, 1, function(x) any(x == LargeVector1)))

这将返回行号而不是列号

我也试过这个尝试并返回列名:

colnames(matrix)[apply(matrix, 1, function(x) any(x == LargeVector1))]

这是返回所有NA的。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

res =apply(matrix, 1, function(x) {if(1 %in% x) {
    colnames(matrix)[which(x == 1)]} 
    else return NA}

将为您提供一个向量,其中每个元素对应于colname,NA表示其中没有1的行