停止 gather 函数丢弃因子标签

Stop gather function from dropping factor labels

我正在尝试使用 tidyr 中的收集功能 - 但它会从分解数据中剥离标签。我的数据看起来像这样:

> require(tidyr)
> messy = data.frame(x=rep(seq(0,2),2),y=runif(6),z=runif(6),source=c('good','bad'))
> messy
  x          y         z source
1 0 0.37627685 0.9108316   good
2 1 0.77593147 0.9944256    bad
3 2 0.01105364 0.1183923   good
4 0 0.37755463 0.6761343    bad
5 1 0.86333114 0.7312482   good
6 2 0.69085345 0.8288506    bad

>tidy = gather(messy,coordinate,value,y:z)
>tidy
   x source coordinate      value
1  0      2          y 0.37627685
2  1      1          y 0.77593147
3  2      2          y 0.01105364
4  0      1          y 0.37755463
5  1      2          y 0.86333114
6  2      1          y 0.69085345
7  0      2          z 0.91083162
8  1      1          z 0.99442560
9  2      2          z 0.11839230
10 0      1          z 0.67613427
11 1      2          z 0.73124818
12 2      1          z 0.82885055

Tidy 已经按照广告收集了 yz 变量,但是 source 变量现在是一个整数。

我做错了什么?

这是此处报告的错误:https://github.com/hadley/tidyr/issues/104

它似乎已在 tidyr 0.3.1 中修复