如何在R中用矩阵创建新矩阵?

时间:2014-05-21 13:25:46

标签: r

我有很大的matirx与folowing结构。我只想创建新的矩阵。 但我不知道如何在R中实现它会有人帮我实现它吗?

我的矩阵:

      a    b   c     
 [1,] "10" "m" "MIT1"
 [2,] "15" "m" "MIT1"
 [3,] "20" "s" "MIT2"
 [4,] "30" "m" "MIT2"
 [5,] "40" "p" "MIT4"
 [6,] "50" "m" "MIT4"
 [7,] "60" "m" "MIT4"
 [8,] "65" "m" "MIT4"
 [9,] "70" "m" "MIT4"
> 

我的新matirx应该会产生以下规则:

对于 c 列中的每个ID,如果 b 列中的相应坐标为 m,将列中的所有相应坐标相加> a 并将其放入新矩阵中。

上述矩阵的预期输出为:

> H
  a     b   c     
q "25"  "m" "MIT1"
w "30"  "m" "MIT2"
e "255" "m" "MIT4"

1 个答案:

答案 0 :(得分:1)

此处更容易转换为data.frameM是原始矩阵。

> library(plyr)
> D <- data.frame(M, stringsAsFactors = FALSE)
> ddply(D[D$b == 'm',], .(c, b), summarize, sum = sum(as.numeric(a)))
     c b sum
1 MIT1 m  25
2 MIT2 m  30
3 MIT4 m 245