我正在尝试使用summary_all查找每个ID的平均值。我可以成功地对ID列和我要查找(速度)平均值的列进行此操作。但是,当我使用以下代码时,所有其他列均作为NA返回。
第二个问题是某些ID具有多个位置的站点或驱动程序。因此,我需要保持驱动程序的平均速度,但要保留多个保持唯一驱动程序和位置的行(日期无关紧要)
我认为这可能是因为作为NA返回的列是非数字的。我尝试浏览其他问题,但无法回答这样的问题以及解决方法。
我也尝试过使用aggregate()函数,但同样发生了。
这是我当前正在使用的代码:
\AppPackage\
这是我的数据:
library(dplyr)
avg <- bind %>%
group_by(ID) %>%
summarize_all(mean)
这就是我想要的最终数据集的样子:
ID Speed Location Driver Date
2 100 a 1 M
2 145 a 1 M
5 155 b 1 M
4 100 a 2 T
3 135 b 2 T
3 156 b 3 T
4 167 b 3 W
到目前为止,这就是我的结果:
ID Speed Location Driver Date
2 122.5 a 1 M
5 155 b 1 M
4 133 a 2 T
4 133 b 3 W
3 145.5 b 2 T
3 145.5 b 3 T
,错误代码:
ID Speed Location Driver Date
2 122.5 NA NA NA
5 155 NA NA NA
4 133 NA NA NA
4 133 NA NA NA
3 145.5 NA NA NA
3 145.5 NA NA NA
答案 0 :(得分:0)
我们可以将'Speed'替换为'Speed'的mean
,然后获取distinct
行
library(dplyr)
bind %>%
group_by(ID) %>%
mutate(Speed = mean(Speed)) %>%
distinct()
# A tibble: 6 x 5
# Groups: ID [4]
# ID Speed Location Driver Date
# <int> <dbl> <chr> <int> <chr>
#1 2 122. a 1 M
#2 5 155 b 1 M
#3 4 134. a 2 T
#4 3 146. b 2 T
#5 3 146. b 3 T
#6 4 134. b 3 W
其他列中的NA
是在非数字列上调用mean
的结果。