重塑非数字值

时间:2016-06-06 19:39:34

标签: r reshape

我无法弄清楚为什么这不起作用。

拥有以下样本数据:

MktAl   Orig    Dest
AA  BWI DFW
AA  BWI MIA
AA  CLE DFW
AA  CMH DFW
AA  DAY DFW
AA  DCA DFW
AA  DCA JFK
AA  DCA LAX
WN  RDU TPA
WN  BWI ATL
WN  BWI DFW
WN  BWI MIA
WN  BWI MCO

我正在尝试重塑数据以获得类似的结果:

ORIG    AA  WN
BWI DFW ATL
BWI MIA DFW
BWI NA  MIA
BWI NA  MCO
CLE DFW NA
CMH DFW NA
DAY DFW NA
DCA DFW NA
DCA JFK NA
DCA LAX NA
RDU NA  TPA

但是,当我尝试使用以下命令时:

reshape(data=ks, direction="wide", timevar="MktAl", idvar="Orig")

我只能得到这个:

Source: local data frame [6 x 2]

    Orig Dest.1:2
  (fctr)   (fctr)
1    BWI       NA
2    CLE       NA
3    CMH       NA
4    DAY       NA
5    DCA       NA
6    RDU       NA

知道为什么这不起作用吗?

2 个答案:

答案 0 :(得分:0)

每当我加载数据时,我都在使用tbl_df(mydata)。一旦我加载它没有它,它工作正常。

答案 1 :(得分:0)

我们需要创建一个序列变量

library(dplyr)
library(tidyr)
df1 %>% 
  group_by(Orig) %>% 
  mutate(n = row_number()) %>% 
  spread(MktAl, Dest) %>% 
  select(-n)
#   Orig    AA    WN
#   <chr> <chr> <chr>
#1    BWI   DFW  <NA>
#2    BWI   MIA  <NA>
#3    BWI  <NA>   ATL
#4    BWI  <NA>   DFW
#5    BWI  <NA>   MIA
#6    BWI  <NA>   MCO
#7    CLE   DFW  <NA>
#8    CMH   DFW  <NA>
#9    DAY   DFW  <NA>
#10   DCA   DFW  <NA>
#11   DCA   JFK  <NA>
#12   DCA   LAX  <NA>
#13   RDU  <NA>   TPA