Функция Arrange: конфликт между lubridate и dplyr R - PullRequest
0 голосов
/ 21 января 2019

Я хочу изменить df с помощью функции arrange из dplyr. Проблема в том, что кажется, что эти два пакета имеют конфликт, когда у меня есть другой столбец (скажем, v2), отличный от столбца, который я хочу организовать df:

   library(dplyr)
library(lubridate)

start_dates <- as.Date(1:10, origin = "2018-01-01")
my_df <- data.frame(x = 10:1, y = interval(start_dates, start_dates + 1), 
                    z=c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J"))

my_df %>% arrange(z)

Ошибка вrange_impl (.data, точки): Столбец y классов Period и Interval от lubridate в настоящее время не поддерживается.

Как я могу заказать свой фрейм данных? Спасибо заранее.

1 Ответ

0 голосов
/ 21 января 2019

Я бы не назвал это "конфликтом" как таковым, просто один пакет не поддерживает функции другого.

Если dplyr arrange() не поддерживает Interval классы,просто используйте order() как обычно:

library(dplyr)
library(lubridate)

start_dates <- as.Date(1:10, origin = "2018-01-01")
my_df <- data.frame(x = 10:1, y = interval(start_dates, start_dates + 1))

my_df %>% arrange(y)

Ошибка вrange_impl (.data, точки):
Столбец `y` классов Period и Interval из lubridate в настоящее время не поддерживаются.

my_df[order(my_df$y), ]

#     x                              y
# 1  10 2018-01-02 UTC--2018-01-03 UTC
# 2   9 2018-01-03 UTC--2018-01-04 UTC
# 3   8 2018-01-04 UTC--2018-01-05 UTC
# 4   7 2018-01-05 UTC--2018-01-06 UTC
# 5   6 2018-01-06 UTC--2018-01-07 UTC
# 6   5 2018-01-07 UTC--2018-01-08 UTC
# 7   4 2018-01-08 UTC--2018-01-09 UTC
# 8   3 2018-01-09 UTC--2018-01-10 UTC
# 9   2 2018-01-10 UTC--2018-01-11 UTC
# 10  1 2018-01-11 UTC--2018-01-12 UTC

Примечание

Для дальнейшего использования я бы серьезно отнесся к предупреждению OTStats - часто без примеров данных другим очень трудно помочь вам,Я бы проверил Как сделать отличный пример для воспроизведения R .

...