使用tidyr :: gather时成为数字的因素

时间:2015-09-13 10:13:33

标签: r tidyr

我下面有一些数据,我希望从宽格式转换为长格式,现在的问题是我尽快使用tidyr::gather()函数创建了categ列。最初的factor模式变成了数字......

如何解决这个问题以及导致问题的原因?

我的原始数据(为了方便而截断)

> x
                          names                                       categ   2003   2004   2005   2006   2007   2008   2009   2012  annChange absChange
1         ensamstående med barn                             köpta livsmedel  26420  27910  28160  29100  28310  33020  35910  33740 0.02754621      7320
2         ensamstående med barn                            hushållstjänster   9490  11690  13770   8650   7250  10390  11490  17140 0.06789162      7650
3         ensamstående med barn                                   transport  27230  30810  28810  28410  30500  30390  29360  34890 0.02792512      7660
4         ensamstående med barn                                      bostad  67890  67250  71200  75210  71000  73490  74710  81820 0.02095350     13930
5         ensamstående med barn                           fritid och kultur  34900  35860  43600  46770  43540  46160  45840  51000 0.04304963     16100
6         ensamstående med barn                           totala utgifterna 215300 219870 241920 241060 229290 253590 255950 277260 0.02850119     61960
7         sammanboende med barn                             köpta livsmedel  45190  45660  45720  44980  48250  52880  52770  52710 0.01725036      7520
8         sammanboende med barn                                   transport  58350  62440  70010  69560  68730  75290  65510  71340 0.02258434     12990
9         sammanboende med barn                           fritid och kultur  67110  67640  67290  64600  74290  71890  77200  81180 0.02137364     14070
10        sammanboende med barn                            hushållstjänster  19840  21380  25690  21430  17190  19060  24730  37440 0.07310890     17600

> x  <- gather(x, year, values, c(which(colnames(x) == '2003'):which(colnames(x) == '2012')))
> x
                           names categ  annChange absChange year values
1          ensamstående med barn    54 0.02754621      7320 2003  26420
2          ensamstående med barn    41 0.06789162      7650 2003   9490
3          ensamstående med barn   125 0.02792512      7660 2003  27230
4          ensamstående med barn     8 0.02095350     13930 2003  67890
5          ensamstående med barn    22 0.04304963     16100 2003  34900
6          ensamstående med barn   124 0.02850119     61960 2003 215300
7          sammanboende med barn    54 0.01725036      7520 2003  45190
8          sammanboende med barn   125 0.02258434     12990 2003  58350
9          sammanboende med barn    22 0.02137364     14070 2003  67110
10         sammanboende med barn    41 0.07310890     17600 2003  19840
11         sammanboende med barn     8 0.02875471     22740 2003  78240
12         sammanboende med barn   124 0.02298435     80500 2003 354730
13        ensamstående utan barn    54 0.02756153      4250 2003  15330
14        ensamstående utan barn    41 0.07225773      5740 2003   6570
15        ensamstående utan barn    43 0.02868763      5900 2003  31900
16        ensamstående utan barn    22 0.04432970     13500 2003  28270

而不是,它不是显示为

的因子水平
> str(x$categ)
 int [1:336] 54 41 125 8 22 124 54 125 22 41 ...

0 个答案:

没有答案