最小最大给定NA值R dplyr [英] min max giving NA values R dplyr

查看:23
本文介绍了最小最大给定NA值R dplyr的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道我们对每个任务收取的最低和最高费用是多少,我正在评估的行数超过25万行。 我不知道为什么会给我NA值

    Data Sample:
    # A tibble: 279,360 x 7
       Job.ID  Task.ID   Task.Name               Task.Minutes Task.BillableRa~ Task.Billable Task.Amount
       <chr>   <chr>     <chr>                   <chr>        <chr>            <chr>         <chr>      
     1 W210238 248323800 E.2 Engineer - Progres~ 1080         137.00           Yes           2466.00    
     2 W210196 249251898 E.2 Engineer            450          137.00           Yes           1027.50    
     3 W210188 249251899 E.2 Engineer            120          137.00           Yes           274.00     
     4 W210229 249251900 E.0 Junior Engineer     90           78.00            Yes           117.00     
     5 W210179 249251901 D.3 Snr Designer        1620         127.00           Yes           3429.00    
     6 W210180 249991653 A.1 Contract Administr~ 60           108.00           Yes           108.00     
     7 W210212 249991654 D.2 Snr Drafter         60           119.00           Yes           119.00     
     8 W210198 250055633 A.1 Contract Administr~ 1500         108.00           Yes           2700.00    
     9 W210223 250055634 D.2 Snr Drafter         5940         119.00           Yes           11781.00   
    10 W210220 250057691 A.1 Contract Administr~ 270          108.00           Yes           486.00     
    # ... with 279,350 more rows**strong text** 

        code:
            x2 %>%
                x2 <- x2 %>%
    group_by(Task.Name) %>%
    mutate(Task.Ratemax= max(Task.BillableRate)) %>%
    mutate(Task.RateMin = min(Task.BillableRate)) %>%
    select(Task.Name, Task.Ratemax,Task.RateMin) %>%
    unique() 

actual outcome:
  # A tibble: 39 x 3
# Groups:   Task.Name [39]
   Task.Name                                    Task.Ratemax Task.RateMin
   <chr>                                        <chr>        <chr>       
 1 E.2 Engineer                                 168.00       127.00      
 2 E.0 Junior Engineer                          98.00        ""          
 3 D.3 Snr Designer                             140.00       119.00      
 4 A.1 Contract Administration                  75.00        102.50      
 5 D.2 Snr Drafter                              135.00       ""          
 6 E.3 Senior Engineer                          168.00       130.00      
 7 X.5 HA Design and Audit                      178.00       161.00      
 8 P.7 Contract Project Manager                 135.00       135.00      
 9 A.3 Client Meetings/Reporting and Site Visit 143.00       140.00      
10 D.1 Draftsperson                             95.00        110.00      
# ... with 29 more rows
> 

推荐答案

感谢Ronak Shah与我分享代码,运行良好。

x2 %>% 
    group_by(Task.Name) %>% 
    mutate(Task.Ratemax= max(as.numeric(Task.BillableRate), na.rm = TRUE),
           Task.RateMin = min(as.numeric(Task.BillableRate), na.rm = TRUE)) %>%
    select(Task.Name, Task.Ratemax,Task.RateMin) %>%
    unique()

# A tibble: 39 x 3
# Groups:   Task.Name [39]
   Task.Name                                    Task.Ratemax Task.RateMin
   <chr>                                               <dbl>        <dbl>
 1 E.2 Engineer                                         168           127
 2 E.0 Junior Engineer                                  103.           78
 3 D.3 Snr Designer                                     140           119
 4 A.1 Contract Administration                          119            75
 5 D.2 Snr Drafter                                      135           109
 6 E.3 Senior Engineer                                  168           130
 7 X.5 HA Design and Audit                              178           161
 8 P.7 Contract Project Manager                         135           135
 9 A.3 Client Meetings/Reporting and Site Visit         143           140
10 D.1 Draftsperson                                     119            95
# ... with 29 more rows
> 

这篇关于最小最大给定NA值R dplyr的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆