【发布时间】:2015-12-07 08:49:23
【问题描述】:
我有一些数据如下:
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))
这是我的直觉选择,我收到错误消息
错误:位置必须在 0 和 n 之间
这是怎么回事,如何解决?
【问题讨论】:
-
像
df %>% gather(Year, Val, c(`2004`:`2009`,`2012`))一样添加反引号或使用有效的列名。gather认为您正在尝试选择超出范围的列索引。 -
我收到一条错误消息:错误:所有 select() 输入必须解析为整数列位置。以下不适用:* c("2004":"2009", "2012") 使用反引号时
-
它对我有用。
df应该是x.row10当然 -
这是一个很好的核心问题。我做了一些调整以使其最小化和可重复。这确实有助于将来快速获得答案。