【发布时间】:2021-10-30 03:38:11
【问题描述】:
假设我有下面的矩阵
Mat = matrix(1:16, nrow = 4, ncol = 4, dimnames = list(as.character(1:4), as.character(16:19)))
现在假设,我想获取 2 个名称的列,即
Mat[, c('16', '1')]
这样我得到了低错误:
Error in Mat[, c("16", "1")] : subscript out of bounds
有没有办法为不可用的列返回NA 值?
感谢您的意见。
【问题讨论】:
-
最好的方法是使用某种函数来尝试和索引,然后在其中放置一个try/catch。但我认为更大的问题是为什么你想这样做?
-
类似于
Mat[, which(c('16', '1') %in% colnames(Mat) == TRUE)]的东西。否则有点令人费解的tryCatch,但不知道您的用例是什么。确实,为什么? -
我需要这样做的原因基本上是基于广泛的外部向量(此处为
x)对我的矩阵进行基准测试。我有不同的行和列的不同矩阵,我需要用相同的列和行使它们看起来相似。希望这可以澄清。