我有一个家庭。每个家庭中每个成员都有一些数据。我需要找到乘坐公共汽车旅行的会员的旅行费用。 30天的票价为84美元,因此每天为2.8美元,这对学生和60岁以上的人来说是一半。由于每次旅行没有限制,因此我想根据每个人的旅行次数潜水2.8。如果一个人没有公车旅行,则为零。
这是一个示例:
household person trip mode student age
1 1 1 car 1 23
1 1 2 bus 1 23
1 1 3 bus 1 23
1 2 1 car 0 65
1 2 2 walk 0 65
1 2 3 bus 0 65
2 1 1 bus 0 18
2 1 2 bus 0 18
2 2 1 walk 0 40
输出
household person trip mode student age Fare
1 1 1 car 1 23 1.4/2
1 1 2 bus 1 23 1.4/2
1 1 3 bus 1 23 1.4/2
1 2 1 car 0 65 1.4/1
1 2 2 walk 0 65 1.4/1
1 2 3 bus 0 65 1.4/1
2 1 1 bus 0 18 2.8/2
2 1 2 bus 0 18 2.8/2
2 2 1 walk 0 40 0
第一人称是学生,乘公共汽车2趟,所以费用是1.4 / 2,第二个人是坐公共汽车1趟,年龄65岁以上。在第二个家庭中,第一人称乘公共汽车旅行有2趟,但是他是杨而不是学生,所以费用是2.8 / 2,最后一个人无公共汽车乘车,所以0。
答案 0 :(得分:2)
这是使用dplyr
的一种方法。我们将数据帧按household
和person
分组,如果此人是student
或拥有age > 60
,我们将一半rate
应用于一半,然后除以次数{{1 }}。
mode == "bus"