R:为什么使用spread()会丢失数据?
我有一个看起来像这样的tibbleR:为什么使用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
# 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")