我有按月组织的旅行数据。看起来像这样
source <- c(1,1,2,2)
dest <- c(2,2,1,1)
month <- c(1,2,1,2)
time <- c(0.23, 0.34, 0.29, 0.33)
df <- data.frame(source, dest, month, time)
> df
source dest month time
1 2 1 0.23
1 2 2 0.34
2 1 1 0.29
2 1 2 0.33
我想time成为具有相同来源和相同目的地的旅行的所有月份的平均时间,如下所示:
source dest time
1 2 0.285
2 1 0.31
以下是我正在考虑的步骤:
- 如果
sourceand的模式dest不是唯一的 time等于time所有month重复该模式的地方的平均值。
这是我尝试过的
df$merged <- paste(df$source, df$dest, sep='')
问题是:
我不知道根据行是否唯一返回 TRUE/FALSE 值的逻辑函数。但这将模式的
duplicated第一个实例分类为不重复。在我的示例中,第一行和第三行将被归类为不重复,而我希望它们被归类为这样。我不知道如何告诉 R,基于上述条件,不唯一的行应该与其重复项相关联,并且这些行的时间应该平均到另一列中。
有谁知道怎么做我的想法?