我下面有一些数据,我希望从宽格式转换为长格式,现在的问题是我尽快使用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 ...