当我有唯一的名字时,tidyr :: gather()会出错

Pro*_*eus 7 r tidyr

我有来自tidyr包的gather()函数的问题.

sample
# A tibble: 5 × 6
  market_share      Y2012      Y2013      Y2014      Y2015      Y2016
         <chr>      <dbl>      <dbl>      <dbl>      <dbl>      <dbl>
1          KAB 0.23469425 0.23513725 0.23187590 0.22940831 0.22662625
2          BGD 0.21353096 0.21352769 0.20910574 0.20035900 0.19374223
3          NN 0.16891699 0.16204919 0.16272993 0.16388675 0.16154017
4         OG 0.07648682 0.07597078 0.07945966 0.07780233 0.08069057
5         Ha 0.05092648 0.05480555 0.06434457 0.07127716 0.08054208
Run Code Online (Sandbox Code Playgroud)

如果我尝试:

sample2 <- gather(sample, market_share, period, Y2012:Y2016)
Error: Each variable must have a unique name.
Problem variables: 'market_share'
Run Code Online (Sandbox Code Playgroud)

但是,每个变量似乎都有一个唯一的名称.

Ha  KAB  BGD  NN OG 
   1    1    1    1    1 
Run Code Online (Sandbox Code Playgroud)

这似乎是人们聚集的常见问题,但我不明白.

mt1*_*022 6

第二个和第三个参数是要在输出中创建的键和值列的名称.具有相同名称的两列是奇数,并且与tidyror的其他函数不兼容dplyr.我建议为新列提供其他名称.因此,您可以尝试:

sample2 <- gather(sample, period, value, Y2012:Y2016)
Run Code Online (Sandbox Code Playgroud)