Создать 6 раз 100 -матрицу или DF с конкретными именами столбцов в R - PullRequest
0 голосов
/ 23 февраля 2012

Вероятно, решение около 20 символов. Я хочу использовать имена для matrix(...) -объекта или альтернативный способ создания кадра данных 6x100 с нулями и именами:

matrix(rep(0,600),ncol=6)->M

где получить доступ к вещам с идентификаторами заголовков, например col$id, а теперь для доступа к 97-му элементу в столбце a1 в матрице, я хочу сделать M$a1[97]. Как?

Errr

> matrix(rep(0,600),ncol=6,nrow=100, colnames=c('q1','q2','a1','a2','s1','s2'))
Error in matrix(rep(0, 600), ncol = 6, nrow = 12, colnames = c("q1", "q2",  : 
  unused argument(s) (colnames = c("q1", "q2", "a1", "a2", "s1", "s2"))

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Если ничего не помогает, вы можете прочитать страницу справки :)

matrix() хочет dimnanes=, как в

R> matrix(rep(0,18), ncol=6, 
+>        dimnames=list(NULL, c('q1','q2','a1','a2','s1','s2')))
     q1 q2 a1 a2 s1 s2
[1,]  0  0  0  0  0  0
[2,]  0  0  0  0  0  0
[3,]  0  0  0  0  0  0
R> 

, где первый аргумент dimnamesвектор имен строк.

1 голос
/ 23 февраля 2012

1) Используйте параметр dimnames в матрице для определения имен столбцов при создании матрицы. dimnames должен быть списком из 2 или NULL.

M <- matrix(rep(0,600), ncol = 6, 
            dimnames = list(NULL, c('q1','q2','a1','a2','s1','s2')))

Со страницы справки:

dimnames    
A dimnames attribute for the matrix: NULL or a list of length 2 giving the row and column
names respectively. An empty list is treated as NULL, and a list of length one as row
names. The list can be named, and the list names will be used as names for the dimensions.

Или установить имена по факту:

colnames(M) <- c('q1','q2','a1','a2','s1','s2')

2) Используйте оператор индексации [ для матриц:

> M[97, "a1"]
a1 
 0 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...