0

在 RI 中有这个矩阵

> a
     id    size pattern                                 
[1,] "1"   "24"  "100"
[2,] "2"   "10"  "111"
[3,] "3"   "2"   "111"

我想按模式唯一,添加大小并连接 id:

 > a
      id   size pattern                                 
 [1,] "1"    "24"  "100"
 [2,] "2-3"  "12"  "111" (this pattern was duplicated, so add size and concatenate id) 

我可以:

> a = unique(a[,"pattern"])

但我不知道如何添加和连接。

提前致谢!

4

1 回答 1

1

如果您有一些列要视为数字(将值相加)和一些列要视为字符(粘贴它们),那么矩阵不是您的数据的正确结构。您应该使用数据框。

使用 plyr:

library(plyr)
ddply(data.frame(a), .(pattern), summarise, 
      id=paste(id, collapse="-"),
      size=sum(as.numeric(size)))
于 2013-08-08T05:49:36.140 回答