Явное предоставление nrow и ncol `as.matrix` не создает измерения - PullRequest
0 голосов
/ 28 сентября 2018

Я создаю простую матрицу 3x3 с 9 значениями, используя функцию as.matrix ().Но вывод, который я вижу, кажется неправильным.Чего мне не хватает?

Вот что я делаю:

> s <- as.matrix(c(3,4,5,6,7,8,9,10,11),nrow = 3,ncol = 3)

Что я ожидаю увидеть:

> s
     [,1] [,2] [,3]
[1,]    3    6    9
[2,]    4    7   10
[3,]    5    8   11

Но то, что я на самом деле вижу:

> s
      [,1]
 [1,]    3
 [2,]    4
 [3,]    5
 [4,]    6
 [5,]    7
 [6,]    8
 [7,]    9
 [8,]   10
 [9,]   11
>

Чего мне не хватает?

В документации для функции as.matrix () говорится, что nrow и ncol используются для определения желаемого количества строк и столбцов .Есть указатели?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Вы предложили вектор в качестве первого аргумента для as.matrix, а на странице справки (Details раздел) написано:

Метод по умолчанию для as.matrix вызывает as.vector(x), и, следовательно,например, приводит факторы к символьным векторам.

При приведении вектора он создает матрицу из одного столбца и переводит имена (если они есть) вектора в имена строк матрицы.

Раздел использования на самом деле не включает ncol или nrow в список аргументов до as.matrix.Их просто игнорируют.Код для просмотра:

as.matrix.default

Этот код сохраняет размерность матрицы, если он есть у первого аргумента.

Я считаю, что использование as.matrix - хороший способ получить print для получения выравниваемого по левому краю списка столбцов атомных векторов.

0 голосов
/ 28 сентября 2018

as.matrix не имеет параметров nrow и ncol.Что вам нужно на самом деле matrix.Чек ?as.matrix

matrix(c(3,4,5,6,7,8,9,10,11),nrow = 3,ncol = 3) 

#     [,1] [,2] [,3]
#[1,]    3    6    9
#[2,]    4    7   10
#[3,]    5    8   11
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...