在不更改类的情况下为矩阵指定名称

时间:2018-04-30 17:02:59

标签: r matrix assign names

我目前正在开发一个for循环,看起来像这样:

for(i in 1) { 
nam <- paste(Test[i,1])
assign(nam, matrix(nrow=1,ncol=8))}

(Test is a vector with random entries and I want to use the first as a name)

我遇到的问题是,一旦我使用赋值,矩阵的类就会从类更改为logi。如何在环境中重命名Matrix并仍然有矩阵类?

1 个答案:

答案 0 :(得分:0)

函数matrix(nrow=1,ncol=8)创建一个新的空1x8矩阵。由于它初始化为空,因此它假定矩阵的元素的最简单情况,即类logical。分配给存储在nam中的名称的矩阵确实仍然是一个矩阵,它只是该矩阵的元素logical

> nam <- 'myname'
> assign(nam, matrix(nrow=1,ncol=8))
> class(myname)
[1] "matrix"
> class(myname[1, 1])
[1] "logical"

顺便说一句,关于这个例子的一些事情看起来很奇怪,人们假设在实际使用中它们更有意义 - 例如,仅在1上循环,或在单个上使用paste()元件。