문제

I am wondering if there is a way to transform a matrix of 2 columns into a multimap or list of list.

The first column of the matrix is an id (with possibly duplicated entries) and the 2nd column is some value.

For example, if I have to following matrix

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

I would like to transform it into the following list

[[1]]
3,4
[[2]]
2
도움이 되었습니까?

해결책

With base functions, you can do something like this:

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

You could use plyr:

dlply(m, 1, function(m) m[,2])   # outputs a list
dlply(m, 1, `[`, 2)              # another way to do it...
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top