我有一些如下数据:
x.row10 <- setNames(data.frame(letters[1:3],1:3,2:4,3:5,4:6,5:7,6:8,7:9),
c("names",2004:2009,2012))
# names 2004 2005 2006 2007 2008 2009 2012
#1 a 1 2 3 4 5 6 7
#2 b 2 3 4 5 6 7 8
#3 c 3 4 5 6 7 8 9
现在,我可以通过gather()
包中的tidyr
将其缩短:
x.row10 %>% gather(Year, Val, -names)
但是当我使用
时x.row10 %>% gather(Year, Val, c(2004:2009,2012))
这是我的直觉选择,我收到错误消息
错误:位置必须介于0和n之间
怎么解决这个问题?
答案 0 :(得分:5)
问题被标记为已解决,但我认为发布我的答案可能很有用。大卫·阿伦堡的做法是对的。你需要exakt 后盾才能运作。如果您在评论中使用引号作为uncool,则会收到与他相同的错误:
Error: All select() inputs must resolve to integer column positions.
The following do not:
* c("2004":"2009", "2012")
对于德国keybord用户:如果你不知道(几分钟前像我一样:-))如何键入背板:
"Shift + the key on the right side of ß" and after that "spacebar".
答案 1 :(得分:3)
x.row10 %>% gather(Year, Val, c(2:8))