Присвоить имя матрице без изменения класса - PullRequest
0 голосов
/ 30 апреля 2018

Я сейчас работаю над циклом 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)

Проблема, с которой я столкнулся, заключается в том, что после того, как я использую команду assign, класс матрицы меняется с класса на logi. Как я могу переименовать Матрицу в среде и при этом иметь класс матрицы?

1 Ответ

0 голосов
/ 30 апреля 2018

Функция 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() для одного элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...