NA 在 R 中的 pivot_wider 之后

时间:2021-06-05 21:59:57

标签: r dplyr pivot tidyr

我看过一些关于我的问题的帖子,但我认为我的有点不同。我试图遵循解决方案,但都无济于事。 最初,我为 pivot_longer 的数据集做了一个 176 column,当我做 summary(df) 时没有 NA。 pivot_longer 之后的数据集如下所示:


region transportation_type country date value

Albania driving Albania 2020-01-13  100.00
Albania driving Albania 2020-01-14  95.30
Albania driving Albania 2020-01-15  101.43
Albania driving Albania 2020-01-16  97.20
Albania driving Albania 2020-01-17  103.55
Albania driving Albania 2020-01-18  112.67

但是,我需要使用 countryregion 分析 transportation_type 所以我用这个代码做了 pivot_wider: >

p_wide <- mobilityTrendData %>% 
    group_by(transportation_type) %>%
    mutate(row = row_number()) %>%
    pivot_wider(names_from = transportation_type, 
                values_from = daily_result) %>%
    select(-row)

注意:列名'value'已更改为'daily_result',并且数字已经来自scaled列的value

结果如下:

> summary(p_wide)
    region            country              date              driving         walking      
 Length:598230      Length:598230      Length:598230      Min.   :-2.09   Min.   :-2.1    
 Class :character   Class :character   Class :character   1st Qu.:-0.46   1st Qu.:-1.0    
 Mode  :character   Mode  :character   Mode  :character   Median : 0.00   Median :-0.3    
                                                          Mean   : 0.10   Mean   :-0.4    
                                                          3rd Qu.: 0.49   3rd Qu.: 0.1    
                                                          Max.   :25.60   Max.   :10.6    
                                                          NA's   :80070   NA's   :537880  
    transit      
 Min.   :-2.1    
 1st Qu.:-1.4    
 Median :-0.8    
 Mean   :-0.7    
 3rd Qu.:-0.1    
 Max.   : 5.2    
 NA's   :560490 

我在驾驶步行公交的大部分行中都使用了NA。 是什么导致完全知道之前的数据集中没有 NA?

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

假设您有一个日期和一个地区/国家组合,其中 driving 有一个值,但 walking 没有。然后当您 pivot_wider 时,您应该为 NA 设置 walking。长数据集中没有 NA,但实际上缺少一行。

关于如何解决这个问题:如果我正确理解了这个问题,那么修复不是问题,而是数据的一个特征。

PS:我不明白你为什么要执行 group_by() 操作,或者你为什么创建然后删除 row 变量。如果我错过了什么,我怀疑是 group_by()pivot_wider() 的影响。