我的数字向量和R中的dim()
有问题。我想知道我的向量X的维度:
dim(X)
但是,该函数返回NULL。
如果我输入:
X
我可以看到X不是空的。为什么dim或nrow会将其报告为“NULL”?
Part of X:
[93486] 6.343e-01 6.343e-01 6.343e-01 6.343e-01 6.343e-01 6.343e-01 6.346e-01
[93493] 6.346e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01
[93500] 6.347e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01
[93507] 6.347e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01
[93514] 6.347e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01 6.347e-01
[93521] 6.347e-01 6.347e-01 6.347e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01
[93528] 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01
[93535] 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01
[93542] 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01
[93549] 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01 6.348e-01
[93556] 6.348e-01 6.348e-01 6.349e-01 6.349e-01 6.349e-01 6.349e-01 6.349e-01
[93563] 6.349e-01 6.349e-01 6.349e-01 6.349e-01 6.349e-01 6.349e-01 6.349e-01
[93570] 6.349e-01 6.349e-01 6.349e-01 6.349e-01 6.349e-01 6.349e-01 6.349e-01
> dim(X)
NULL
> class(X)
[1] "numeric"
> nrow(pvals_vector)
NULL
为什么没有X的尺寸?
答案 0 :(得分:12)
因为它是一维向量。它有长度。尺寸是应用于矢量以将其转换为矩阵或更高维数组的额外属性:
x <- 1:6
dim( x )
#NULL
length( x )
#[1] 6
dim( matrix( x , 2 , 3 ) )
#[1] 2 3
答案 1 :(得分:1)
作为旁注,我编写了一个函数,如果length
返回dim==NULL
:
function(items) {
dims<-vector('list',length(items))
names(dims)<-items
for(thing in seq(1,length(items))) {
if (is.null(dim(get(items[thing])))) {
dims[[thing]]<-length(get(items[thing]))
} else{
#load with dim()
dims[[thing]]<-dim(get(items[thing]))
}
}
return(dims)
}
或者,正如SimonO指出的那样,如果需要,你可以“强制”一个1xN矩阵。