Как преобразовать матрицу с 2 столбцами в структуру с несколькими картами? - PullRequest
0 голосов
/ 19 марта 2010

Мне интересно, есть ли способ преобразовать матрицу из 2 столбцов в мультикарту или список списка.

Первый столбец матрицы - это идентификатор (возможно, с дублированными записями), а 2-й столбец - некоторое значение.

Например, если мне нужно следующую матрицу

m <- matrix(c(1,2,1,3,2,4), c(3,2))

Я хотел бы преобразовать его в следующий список

[[1]]
3,4
[[2]]
2

1 Ответ

2 голосов
/ 19 марта 2010

С помощью базовых функций вы можете сделать что-то вроде этого:

tapply(m[,2], m[,1], `[`)        # outputs an array
by(m, m[,1], function(m) m[,2])  # outputs a by object, which is a list

Вы можете использовать plyr:

dlply(m, 1, function(m) m[,2])   # outputs a list
dlply(m, 1, `[`, 2)              # another way to do it...
...