我有一个这样的数据框:
Vehicle Driver Distance Fuel.Consumption
W01 Alex 22.31 0.58
W01 Alex 93.21 2.48
W02 Brian 122.72 3.22
W02 Brian 22.25 0.5
......
我想要这样的输出:
Vehicle Driver Distance Fuel.Consumption Fuel.Efficiency
W01 Alex 115.52 3.06 37.75
W02 Brian 144.97 3.72 38.97
......
只需将每辆车的距离和 Fuel.Consumption 相加,然后计算出每辆车的 Fuel.Efficiency。
我试过 aggregate()
,但它不像我想象的那样工作:
aggregate(Distance~Vehicle, df, FUN=sum)
最佳答案
当我尝试一次做不止一件事时,我总是遇到 aggregate
语法问题。在这里,您想要对两个现有列求和并计算一个全新的列。使用 dplyr
:
library(dplyr)
df %>% group_by(Vehicle, Driver) %>%
summarize(Distance = sum(Distance),
Fuel.Consumption = sum(Fuel.Consumption),
Fuel.Efficiency = Distance / Fuel.Consumption)
# Source: local data frame [2 x 5]
# Groups: Vehicle
# Vehicle Driver Distance Fuel.Consumption Fuel.Efficiency
# 1 W01 Alex 115.52 3.06 37.75163
# 2 W02 Brian 144.97 3.72 38.97043
关于r - 基于 R 中的另一列对数据框中的列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32493398/