R:为什么使用spread()会丢失数据?

R:为什么使用spread()会丢失数据?,r,dplyr,data-cleaning,spread,R,Dplyr,Data Cleaning,Spread,我有一个看起来像这样的tibble # A tibble: 1,000 x 3 id question answer <chr> <chr> <chr&g

我有一个看起来像这样的tibble

# A tibble: 1,000 x 3
   id                 question                               answer                                                          
   <chr>                  <chr>                                <chr>                                                                     
 1 aaa               What is your favorite color?                Green                                                                        
 2 aaa               What is your favorite band?                 Green Day                                                       
 3 aaabb             What is your favorite color?                Blue                                                                                
 4 aaabb             What is your favorite band?                Blue            
 5 ccc               What is your favorite color?                Blue                                                                        
 6 ccc               What is the difference between you and me?  Five bank accounts                                             
# ... with more rows
但是,我最终得到了一个充满空行的数据帧

  # A tibble: 1,000 x 3
       id                 V1              What is your favorite color?   What is your favorite band?   What is the difference between you and me?                                                 
     1 aaa                               NA                              NA                            NA                                                        
     2 aaa                               NA                              NA                            NA                         
     3 aaabb                             NA                              NA                            NA                                                
     4 aaabb                             NA                              NA                            NA
     5 ccc                               NA                              NA                            NA                                          
     6 ccc                               NA                              NA                            NA               
    # ... with more rows
在原始tibble中,有些行具有ID,然后问答为null。一个ID没有重复的问题。也就是说,不同的ID可以回答不同的问题,它们的问题并不都相同

此外,我没有做V1行,这不是我原来的tibble。它出现在传播之后()


令人沮丧的是,当我在一个小数据集上执行该函数时,它工作得很好。当我在完整的数据集(~150K条记录)上执行该函数时,我得到了NAs。

很难理解为什么这不起作用。
dcast
是从
restrape2
使用的一个好选择。你可以实现同样的目标

aTibble %>% distinct() %>% dcast(id ~ question, value.var = "answer")

很难理解为什么这不起作用。
dcast
是从
restrape2
使用的一个好选择。你可以实现同样的目标

aTibble %>% distinct() %>% dcast(id ~ question, value.var = "answer")