将矩阵的每一行乘以相同的因子

时间:2018-03-15 01:54:24

标签: r matrix-multiplication

我在R中有以下形式的矩阵。第一列是唯一值,由0共享

      [,1] [,2]
[1,]    1    4
[2,]    1    2
[3,]    2    3
[4,]    2    5
[5,]    3   10

结果应如下所示:

     [,1] [,2]
[1,]    1    8
[2,]    2   15
[3,]    3   10

我一直在网上寻找一些时间,但是找不到这个简单的回答'没有子集的问题。感谢

1 个答案:

答案 0 :(得分:2)

一个简单的选项是aggregate

aggregate(. ~ V1, as.data.frame(m1), FUN = prod)
#   V1 V2
#1  1  8
#2  2 15
#3  3 10

tidyverse

library(dplyr)
library(tibble)
as_tibble(m1) %>% 
   group_by(V1) %>% 
   summarise_all(prod)

split

sapply(split(m1[,2], m1[,1]), prod)