如何通过" date"来安排(dplyr)数据框。领域?

时间:2018-03-26 11:22:51

标签: r dataframe dplyr

我有一个数据框df,其列名为" date"。 当我想按日期安排时:df %>% arrange(date) 我收到以下错误:

error in arrange_impl(.data, dots) : 
  cannot arrange column of class 'function' at position 1

除了更改列名之外,强制它按此列排列的方式是什么?

1 个答案:

答案 0 :(得分:3)

我们可以使用backquotes指定具有前导/滞后空格

的列名
df %>%
   arrange(` date `)

或者更好的方法是删除空格renametrimws列,然后在OP代码中使用arrange

df %>%
  rename_all(trimws) %>%
  arrange(date)

注意:最好不要在列名中包含空格,无论是前导/滞后还是分隔单词。通常,如果列名中有多个单词,请使用下划线(_)进行连接。

如果列名称没有任何空格(' df1'),group_by之后的arrangearrange之后的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"