我正在努力申请
head(1)
对于列,聚合到另一列,逻辑表达式聚合到groupby之后的另一列。
我有一个数据框
df
这样地:
df <- data.frame(ref = c(rep("123", 3), rep("456", 3), rep("789", 4)),
carrier = c("A", "A", "B", "C", "C", "C", "D", "E", "F", "A"),
distance = c(20, 10, 40, 20, 90, 30, 20, 20, 30, 70),
stringsAsFactors = FALSE)
>df
ref carrier distance
123 A 20
123 A 10
123 B 40
456 C 20
456 C 90
456 C 30
789 D 20
789 E 20
789 F 30
789 A 70
我想在下面做这些事情。
-
分组依据
ref
-
使柱突变
first_carrier
其中
carrier
返回每组的列
-
使柱突变
agg_distance
其中
distance
返回每组中的列
-
使柱突变
plus_100
如果
agg_距离
大于350,错误小于100。
所以结果应该是这样的。
ref first_carrier agg_distance plus_100
123 A 70 FALSE
456 C 140 TRUE
789 D 140 TRUE
我的尝试:
df_new <- df %>%
group_by(ref) %>%
mutate("agg_distance" = summarise(sum(distance)) %>%
mutate("plus_100" = ifelse(agg_distance >= 100, T, F))
但我只是不知道如何在每个小组第一个承运人。