在R中按索引变量求和行

时间:2012-08-06 15:43:32

标签: r analytics summary

我正在使用美国所有交通系统的数据库,并试图比较不同的机构。每个案例都是组织的特定部分。例如,公交线路与地铁分开。我想结合给定机构的所有案例的价值。

基本上我想对每个“Trs_Id”的每列的值求和,然后删除其余的。该数据框是运营费用的细目(“opex”)。这是我的数据集在R中的样子:

> colnames(opex)
[1] "Trs_Id"                  "Mode_Cd"                
[3] "Service_Cd"              "Expense_Category_Desc"  
[5] "Op_Sal_Wage_Amt"         "Other_Sal_Wage_Amt"     
[7] "Fringe_Benefit_Amt"      "Service_Costs_Amt"      
[9] "Fuel_Lubricant_Amt"      "Tire_Tube_Amt"          
[11] "Other_Mat_Sup_Amt"       "Utility_Amt"            
[13] "Casuality_Liability_Amt" "Tax_Amt"                
[15] "In_Report_Amt"           "Sep_Report_Amt"         
[17] "Misc_Expense_Amt"        "Expense_Transfer_Amt"   
[19] "Ada_Related_Amt"        
> NROW(opex)
[1] 6956
> id_nm <- table(opex$Trs_Id)
> NROW(id_nm)
[1] 616

2 个答案:

答案 0 :(得分:4)

尽管您没有制作可重现的示例来演示您的问题,但我认为您可以使用ddply包中的plyr函数来解决它,但您也可以使用基函数{{ 1}}。我更喜欢用aggregate

这是一些用于确定data.frame

的随机数字
ddply

答案 1 :(得分:2)

使用Jilber的数据集,你也可以用aggregate()来处理它:

aggregate(data_set[, 4:5], list(data_set$Trs_Id), sum)

对于您的示例,列号将是5:19而不是4:5。