nrow(矩阵)函数

nrow(矩阵)函数,r,statistics,R,Statistics,我有一个使用R的作业,有一个小问题。在分配中,必须生成具有随机行数的多个矩阵,然后用于各种计算。除非行数为1,否则所有操作都是完美的 在计算中,我以不同的方式使用nrow(矩阵),例如if(I让我们称你的向量为x。尝试使用matrix(x)或t(matrix(x))将其转换为适当的(2D)矩阵。并非R中的单行/列矩阵将ncol/nrow设置为NULL——在R中,一切都是1D向量,其行为类似于矩阵(即显示为矩阵、接受矩阵索引等)当它具有dim属性集时。似乎不是这样,因为简单地将矩阵索引到单个行或列

我有一个使用R的作业,有一个小问题。在分配中,必须生成具有随机行数的多个矩阵,然后用于各种计算。除非行数为1,否则所有操作都是完美的


在计算中,我以不同的方式使用nrow(矩阵),例如
if(I让我们称你的向量为
x
。尝试使用
matrix(x)
t(matrix(x))
将其转换为适当的(2D)矩阵。

并非R中的单行/列矩阵将
ncol
/
nrow
设置为
NULL
——在R中,一切都是1D向量,其行为类似于矩阵(即显示为矩阵、接受矩阵索引等)当它具有
dim
属性集时。似乎不是这样,因为简单地将矩阵索引到单个行或列会降低
dim
,并使数据保持其默认(1D向量)状态

因此,您可以通过直接重新创建向量的
dim
属性(例如称为x)来实现目标:

dim(x)<-c(length(x),1)
x #Now a single column matrix

dim(x)<-c(1,length(x))
x #Now a single row matrix
x<-matrix(1:12,3,4)
x                #OK, matrix
x[,3]            #Boo, vector
x[,3,drop=FALSE] #Matrixicity saved!