我有一个数据帧df
,列名为"date
"。 当我想按日期安排时:df %>% arrange(date)
我收到以下错误:
error in arrange_impl(.data, dots) :
cannot arrange column of class 'function' at position 1
除了更改列名之外,强制它按此列排列的方法是什么?
我们可以使用backquotes
来指定带有前导/滞后空格的列名
df %>%
arrange(` date `)
或者更好的方法是通过删除空格(trimws
)来rename
列,然后像OP代码中那样使用arrange
。
df %>%
rename_all(trimws) %>%
arrange(date)
注意:最好不要在列名称中使用空格,无论是前导/滞后还是分隔词。 通常,如果列名中有多个单词,请使用下划线 (_
) 来连接它。
如果列名没有任何空格 ('df1'),则在arrange
之后group_by
或group_by
之后arrange
都可以很好地工作
df1 %>%
group_by(date) %>%
arrange(col2)
# A tibble: 6 x 2
# Groups: date [6]
# date col2
# <date> <dbl>
#1 2018-03-26 -0.848
#2 2018-03-27 -0.584
#3 2018-03-29 -0.466
#4 2018-03-28 0.266
#5 2018-03-30 0.445
#6 2018-03-31 0.847
df1 %>%
group_by(col2) %>%
arrange(date)
# A tibble: 6 x 2
# Groups: col2 [6]
# date col2
# <date> <dbl>
#1 2018-03-26 -0.848
#2 2018-03-27 -0.584
#3 2018-03-28 0.266
#4 2018-03-29 -0.466
#5 2018-03-30 0.445
#6 2018-03-31 0.847
数据
set.seed(24)
df <- data.frame(" date " = sample(Sys.Date() + 0:5), col2 = rnorm(6), check.names = FALSE)
df1 <- df
colnames(df1)[1] <- "date"