使用 tidyr 收集:位置必须介于 0 和 n 错误之间
gather with tidyr: position must be between 0 and n error
我有如下一些数据:
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
现在我可以使用 tidyr
包中的 gather()
使它们变长,方法是编写:
x.row10 %>% gather(Year, Val, -names)
但是当我使用
x.row10 %>% gather(Year, Val, c(2004:2009,2012))
这是我的直觉选择,我收到错误消息
Error: Position must be between 0 and n
这是怎么回事,如何解决?
x.row10 %>% gather(Year, Val, c(2:8))
问题已标记为已解决,但我认为它可能对 post 我的回答有用。 David Arenburg 的做法是正确的。你需要精确的 backticks 才能工作。如果你在评论中像@uncool一样使用引号,你会得到和他一样的错误:
Error: All select() inputs must resolve to integer column positions.
The following do not:
* c("2004":"2009", "2012")
对于德语键盘用户:如果您不知道如何键入反引号(几分钟前就像我一样):
"Shift + the key on the right side of ß" and, after that, "spacebar".
我有如下一些数据:
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
现在我可以使用 tidyr
包中的 gather()
使它们变长,方法是编写:
x.row10 %>% gather(Year, Val, -names)
但是当我使用
x.row10 %>% gather(Year, Val, c(2004:2009,2012))
这是我的直觉选择,我收到错误消息
Error: Position must be between 0 and n
这是怎么回事,如何解决?
x.row10 %>% gather(Year, Val, c(2:8))
问题已标记为已解决,但我认为它可能对 post 我的回答有用。 David Arenburg 的做法是正确的。你需要精确的 backticks 才能工作。如果你在评论中像@uncool一样使用引号,你会得到和他一样的错误:
Error: All select() inputs must resolve to integer column positions.
The following do not:
* c("2004":"2009", "2012")
对于德语键盘用户:如果您不知道如何键入反引号(几分钟前就像我一样):
"Shift + the key on the right side of ß" and, after that, "spacebar".