我有一个这样的数据框:
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
......
Run Code Online (Sandbox Code Playgroud)
我想要这样的输出:
Vehicle Driver Distance Fuel.Consumption Fuel.Efficiency
W01 Alex 115.52 3.06 37.75
W02 Brian 144.97 3.72 38.97
......
Run Code Online (Sandbox Code Playgroud)
只需将每辆车的距离和 Fuel.Consumption 相加并计算每辆车的 Fuel.Efficiency。我试过了aggregate(),但它不像我想象的那样工作:
aggregate(Distance~Vehicle, df, FUN=sum)
Run Code Online (Sandbox Code Playgroud)
当我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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4980 次 |
| 最近记录: |