我正在为我正在从事的这个项目制作一个辅助函数,我需要在其中从一组数据中得出百分位数。
在某些情况下,我会对条目向量进行百分位排序,这相当简单。在其他情况下,我将对矩阵中的条目进行百分位排序。
过程相似,但又不同。我希望能够区分作为输入给出的内容(无论是向量还是矩阵),所以我知道什么操作是合适的。
我考虑过对输入的维度做些什么。但是 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/