如何总结R中的字符,因子和数值向量

时间:2019-05-21 03:28:51

标签: r character aggregate summarize

我正在尝试使用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

1 个答案:

答案 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的结果。