我是编码的新手,我正在使用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的。任何帮助将不胜感激。
答案 0 :(得分:0)
res =apply(matrix, 1, function(x) {if(1 %in% x) {
colnames(matrix)[which(x == 1)]}
else return NA}
将为您提供一个向量,其中每个元素对应于colname,NA表示其中没有1的行