为什么dcast用NAs填充我的(融化的)数据帧?

时间:2013-12-03 07:52:33

标签: r dataframe reshape2 melt

我从这个无害的数据框开始:

Date          Company     Jobs   
1/1/2012      Company 1    12 
1/1/2012      Company 2    84
1/1/2012      Company 3    239
1/1/2012      Company 4    22

我正在梦想,乞求和幻想这个数据框看起来像这样:

Date          Company 1   Company 2 Company 3 Company 4
1/1/2012         12          84       239        22
1/2/2012                
1/3/2012                     <other numbers here> 
1/4/2012      

环顾四周并考虑使用哪些工具,我想我会使用reshape2包 我从myDF <- melt(myDF)开始 所以我可以融化我的数据帧。策略是使用 dcast将其重新格式化为长数据帧。

所以这是我融化的数据框:

Date          Company     variable   value
1/1/2012      Company 1    Jobs       12 
1/1/2012      Company 2    Jobs       84
1/1/2012      Company 3    Jobs       239
1/1/2012      Company 4    Jobs       22

我试过了 dcast(myDF, Date ~ Company + value)
得到了这个:

Date          Company 1   Company 2 Company 3 Company 4
1/1/2012         NA          NA       NA        NA
1/2/2012                
1/3/2012                     <NAs here> 
1/4/2012      

有人可以帮助我,告诉我为什么会发生这种邪恶的事情吗?

1 个答案:

答案 0 :(得分:1)

您可以在函数dcast()内使用原始数据框,因为您的数据已经是长格式。函数将使用列Jobs作为值。

dcast(df,Date~Company)
      Date Company_1 Company_2 Company_3 Company_4
1 1/1/2012        12        84       239        22

您也可以准确地写下您想要使用列Jobs作为值。

dcast(df,Date~Company,value.var="Jobs")