是否可以在R中创建一维命名向量?

是否可以在R中创建一维命名向量?,r,R,我试图命名一个只有一列的向量,也就是说我有 vector<-c(1,2,3,4) 如果我尝试 colnames(vector)<- c("a") colnames(vector)如果您想要具有列名且将以列格式打印的内容,请使用单列矩阵或数据。frame: vector <- matrix( c(1,2,3,4), dimnames=list(NULL, "a") ) vector <- data.frame( a=c(1,2,3,4) ) 实际上,dim函数帮助页

我试图命名一个只有一列的向量,也就是说我有

vector<-c(1,2,3,4)
如果我尝试

colnames(vector)<- c("a")

colnames(vector)如果您想要具有列名且将以列格式打印的内容,请使用单列
矩阵
数据。frame

vector <- matrix( c(1,2,3,4), dimnames=list(NULL, "a") )

vector <- data.frame( a=c(1,2,3,4) )
实际上,dim函数帮助页面似乎没有记录dim结果的乘积等于长度的要求。我猜你的家庭作业是为了让你阅读dim帮助页面,然后发现(正如我刚才所做的)一维对象是可能的,但有点混乱

事实证明,行向量和列向量之间的区别并不强制:

> vector %*% matrix(1:16,4)
     [,1] [,2] [,3] [,4]
[1,]   30   70  110  150
> t(vector) %*% matrix(1:16,4)
     [,1] [,2] [,3] [,4]
[1,]   30   70  110  150
> t(vector) %*% matrix(1:16,4) %*% vector
     [,1]
[1,] 1100
> vector %*% matrix(1:16,4) %*% vector
     [,1]
[1,] 1100

如果您需要具有列名且将以列格式打印的内容,请使用单列
矩阵
数据框

vector <- matrix( c(1,2,3,4), dimnames=list(NULL, "a") )

vector <- data.frame( a=c(1,2,3,4) )
实际上,dim函数帮助页面似乎没有记录dim结果的乘积等于长度的要求。我猜你的家庭作业是为了让你阅读dim帮助页面,然后发现(正如我刚才所做的)一维对象是可能的,但有点混乱

事实证明,行向量和列向量之间的区别并不强制:

> vector %*% matrix(1:16,4)
     [,1] [,2] [,3] [,4]
[1,]   30   70  110  150
> t(vector) %*% matrix(1:16,4)
     [,1] [,2] [,3] [,4]
[1,]   30   70  110  150
> t(vector) %*% matrix(1:16,4) %*% vector
     [,1]
[1,] 1100
> vector %*% matrix(1:16,4) %*% vector
     [,1]
[1,] 1100

尝试
rep('a',length(vector))
如果希望它成为一列,可能需要使用
matrix
m=matrix(1:4);colnames(m)=“a”
您可以使用n x 1矩阵或只有一列的data.frame吗?不,我的查询是,不使用矩阵或data.frame,这是允许的。请重新编辑;向向量添加维度(带行和列)会将其强制为矩阵(
v=1:4;dim(v)=c(4,1);class(v)
。因此我怀疑您的问题的答案是否定的,不是没有
matrix
。请尝试
rep('a',length(vector))
如果您希望它是一列,也许您希望使用
矩阵
,即
m=matrix(1:4);colnames(m)=“a”
您是否可以使用nx1矩阵或只有一列的data.frame?不,我的查询是,这是允许的,不使用矩阵或data.frame?重新编辑;向向量添加维度(带行和列)将强制它成为一个矩阵(
v=1:4;dim(v)=c(4,1);class(v)
。因此我怀疑你的问题的答案是否定的,不是没有
matrix
vector <- matrix( c(1,2,3,4), dimnames=list(NULL, "a") )

vector <- data.frame( a=c(1,2,3,4) )
  ?dim

dim(vector)=1L
Error in dim(vector) = 1L : 
  dims [product 1] do not match the length of object [4]

> dim(vector)=4L
> vector
[1] 1 2 3 4
> str(vector)
 num [1:4(1d)] 1 2 3 4
> vector %*% matrix(1:16,4)
     [,1] [,2] [,3] [,4]
[1,]   30   70  110  150
> t(vector) %*% matrix(1:16,4)
     [,1] [,2] [,3] [,4]
[1,]   30   70  110  150
> t(vector) %*% matrix(1:16,4) %*% vector
     [,1]
[1,] 1100
> vector %*% matrix(1:16,4) %*% vector
     [,1]
[1,] 1100