r - 区分向量和 R 中的矩阵

标签 r matrix vector

我正在为我正在从事的这个项目制作一个辅助函数,我需要在其中从一组数据中得出百分位数。

在某些情况下,我会对条目向量进行百分位排序,这相当简单。在其他情况下,我将对矩阵中的条目进行百分位排序。

过程相似,但又不同。我希望能够区分作为输入给出的内容(无论是向量还是矩阵),所以我知道什么操作是合适的。

我考虑过对输入的维度做些什么。但是 dim(*vector*) = NULL,但是 dim(matrix(1:15, 1,15)) = c(1,15) 尽管这是有争议的成为一个向量。所以我不能用我的第一个想法

if(length(dim(objects)) == 2){*A MATRIX*}
else{*A VECTOR*}

我认为我可以只添加 min(dim(objects)) > 1 的条件来测试矩阵,但我认为可能有更好的选择。 (现在我在这里...)

有什么想法吗?

最佳答案

似乎您想忽略任何只有一个级别的维度,因此 drop 是合适的:

if(is.null(dim(drop(x)))) {
  # do vector stuff
} else {
  # do matrix/array stuff
}

关于r - 区分向量和 R 中的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18148402/

相关文章:

r - 绑定(bind)2个不同行数的数据集

matlab - 如何避免Matlab中的大矩阵乘法

r - 是否存在R函数,用于查找矩阵中包含特​​定元素的行?

c++ - 超出内存限制或时间限制

C++最有效的方法迭代 vector 中的特定内容

r - ts 对象中的双季节循环

rstanarm 用于二项式实验的贝叶斯分层建模

r - tidytext 从文件夹中读取文件

c++ - 无法从文件 C++ 中读取 double 行

r - 从向量创建一系列向量