Sum columns by group (row names) in a matrix

前端 未结 3 1848
迷失自我
迷失自我 2020-12-11 17:01

Let\'s say I have a matrix called x.

x <- structure(c(1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1), 
.Dim = c(5L, 4L), .Dimname         


        
3条回答
  •  误落风尘
    2020-12-11 17:29

    An approach using plyr:

    ldply(split(df, df$Name), function(u) colSums(u[-1]))
    #   .id Mon Tue Wed Thurs
    #1 Cake   2   1   1     2
    #2  Pie   0   0   3     3
    

    Data:

    df = structure(list(Name = structure(c(1L, 2L, 1L, 2L, 2L), .Label = c("Cake", 
    "Pie"), class = "factor"), Mon = c(1L, 0L, 1L, 0L, 0L), Tue = c(0L, 
    0L, 1L, 0L, 0L), Wed = c(1L, 1L, 0L, 1L, 1L), Thurs = c(1L, 1L, 
    1L, 1L, 1L)), .Names = c("Name", "Mon", "Tue", "Wed", "Thurs"
    ), row.names = c(NA, -5L), class = "data.frame")
    

提交回复
热议问题