我正在为我正在处理的这个项目创建一个辅助函数,我需要从一组数据中提取百分位数。
在某些情况下,我会对条目向量进行百分比化,这很容易。在其他情况下,我将对矩阵中的条目进行百分比化。
过程相似,但不同。我希望能够区分作为输入给出的内容(无论是向量还是矩阵),以便我知道什么操作是合适的。
我想过对输入的尺寸做一些事情。但是dim(*vector*) = NULL,dim(matrix(1:15, 1,15)) = c(1,15)尽管这是一个有争议的向量。所以我不能用我的第一个想法
if(length(dim(objects)) == 2){*A MATRIX*}
else{*A VECTOR*}
Run Code Online (Sandbox Code Playgroud)
我认为我可以添加条件min(dim(objects)) > 1来测试矩阵,但我认为可能有更好的选择。(现在我在这里......)
有什么想法吗?
似乎您想忽略任何只有一个级别的维度,因此drop是合适的:
if(is.null(dim(drop(x)))) {
# do vector stuff
} else {
# do matrix/array stuff
}
Run Code Online (Sandbox Code Playgroud)