我正在使用美国所有交通系统的数据库,并试图比较不同的机构。每个案例都是组织的特定部分。例如,公交线路与地铁分开。我想结合给定机构的所有案例的价值。
基本上我想对每个“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
答案 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。