我有一个数据框df
,其列名为" date
"。
当我想按日期安排时:df %>% arrange(date)
我收到以下错误:
error in arrange_impl(.data, dots) :
cannot arrange column of class 'function' at position 1
除了更改列名之外,强制它按此列排列的方式是什么?
答案 0 :(得分:3)
我们可以使用backquotes
指定具有前导/滞后空格
df %>%
arrange(` date `)
或者更好的方法是删除空格rename
)trimws
列,然后在OP代码中使用arrange
。
df %>%
rename_all(trimws) %>%
arrange(date)
注意:最好不要在列名中包含空格,无论是前导/滞后还是分隔单词。通常,如果列名中有多个单词,请使用下划线(_
)进行连接。
如果列名称没有任何空格(' df1'),group_by
之后的arrange
或arrange
之后的group_by
会很好的
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"