如何将具有2列的矩阵转换为类似多图的结构?

时间:2010-03-19 14:59:20

标签: list r arrays multimap

我想知道是否有办法将2列矩阵转换为多图或列表列表。

矩阵的第一列是一个id(可能有重复的条目),第二列是一些值。

例如, 如果我必须遵循矩阵

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

我想将其转换为以下列表

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

1 个答案:

答案 0 :(得分:2)

使用基本功能,您可以执行以下操作:

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...