如果`dim(x)== NULL`,重新编码`dim`返回`length`会不会很愚蠢?

时间:2014-09-06 06:02:49

标签: r primitive

正如this question及其丰富的官员所指出的那样。非正式的R文档,

x <- complex(15)
dim(x) == NULL

对我而言,必须为原子向量编写单独的方法(或if子句)而不是能够使用dim(x)[1],这很烦人。重新编码dim(原始)是否愚蠢,如果length它会自动返回dim(x)==NULL

更具体一点:如果我重新编码dim让我说.Rprofile,流行的套餐会破裂吗?这是愚蠢的另一个原因,我没有看到?

1 个答案:

答案 0 :(得分:4)

目前还不清楚你要做什么,但NROWNCOL函数是以维度无关的方式检索范围的方法。他们将向量视为列向量,因此当NROW(X)是向量时,length(x)NCOL(x)相同,x为1。

> x <- numeric(10) # or complex, character, logical, etc
> nrow(x)
NULL
> NROW(x)
[1] 10
> NCOL(x)
[1] 1

> m <- matrix(1:10, nrow=5)
> nrow(m)
[1] 5
> NROW(m)
[1] 5
> NCOL(m)
[1] 2