根据 R 中的值从矩阵返回列名称

标签 r matrix

我有一个矩阵,我想根据值提取列名称。在本例中,我想要包含小于或等于 2 的值的任何列的名称(该值位于哪一行并不重要)。

set.seed(42)
DF <- matrix(sample(1:9,9),ncol=3,nrow=3)
DF <- as.data.frame.matrix(DF)

这是我尝试过的,(如果矩阵中只有 1 行,它似乎可以工作)

test<-colnames(DF)[which(DF<=2),]

test 将表示包含值 <= 2 的列名称

最佳答案

1

运行sapply在列上找到 min然后检查是否 min符合你的条件。

colnames(DF)[sapply(DF, min) <= 2]
#[1] "V3"

2

您还可以运行apply在列 ( MARGIN = 2 ) 上查看是否 any每列的值都满足要求的条件

colnames(DF)[apply(DF, MARGIN = 2, function(a) any(a<=2))]
#[1] "V3"

3

使用arr.ind = TRUEwhich 。这将给出满足 which 条件的值的索引。从中提取列信息 [,2] .

unique(colnames(DF)[which(DF<=2, arr.ind = TRUE)[,2]])
#[1] "V3"

数据

set.seed(42)
DF <- matrix(sample(1:9,9),ncol=3,nrow=3)
DF <- as.data.frame.matrix(DF)
DF
#  V1 V2 V3
#1  9  5  6
#2  8  4  1
#3  3  7  2

关于根据 R 中的值从矩阵返回列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42727397/

相关文章:

r - 编码 hell 德语特殊字符

r - 将缺少日期的数据框转换为时间序列

r - 在 glm() 中使用 splines 包中的 ns() 函数

C++ 多维 vector 如何在内部增长?

r - dplyr 的选择助手函数everything() 与复制有何不同?

r - ggplot2:更复杂的分面

使用三重指针创建矩阵会导致段错误

python - numpy 矩阵乘法 n x m * m x p = n x p

php - 使用mysql动态填充php中的数组

image - 计算旋转2D图像的平移值和旋转角度