Невозможно использовать команду приведения в R для сортировки числовых имен столбцов - PullRequest
0 голосов
/ 30 марта 2019

У меня есть имена столбцов в виде отметок времени, например, 0:00:00 1:00:00 10:00:00 11:00:00 12:00:00 13:00:00 14:00, 00.

Как вы видите, отметка времени 1:00:00 сопровождается 10:00:00 вместо 02:00:00.

При копании в этой теме сталкивался с проблемой сортировки значений в фрейме данных и преобразования типа данных в числовые значения.

Как преобразовать имена столбцов в числовые исортировать столбцы не данные?

1 Ответ

0 голосов
/ 30 марта 2019

Я создал образец набора данных, чтобы проиллюстрировать свое решение: используя lubridate, мы можем преобразовать имена столбцов в формат времени, а затем упорядочить data.frame соответственно:

df <- structure(list(`0:00:00` = 1:9, `1:00:00` = 10:18, `10:00:00` = 19:27, 
    `11:00:00` = 28:36, `12:00:00` = 37:45, `13:00:00` = 46:54, 
    `14:00:00` = 55:63), .Names = c("0:00:00", "1:00:00", "10:00:00", 
"11:00:00", "12:00:00", "13:00:00", "14:00:00"), class = "data.frame", row.names = c(NA, 
-9L))

df2 <- structure(list(`0:00:00` = 1:9, `1:00:00` = 19:27, `10:00:00` = 28:36, 
    `11:00:00` = 10:18, `12:00:00` = 37:45, `13:00:00` = 46:54, 
    `14:00:00` = 55:63), .Names = c("0:00:00", "1:00:00", "10:00:00", 
"11:00:00", "12:00:00", "13:00:00", "14:00:00"), class = "data.frame", row.names = c(NA, 
-9L))

library(lubridate)
df <- df[,order(hms(names(df)))]
df2 <- df2[,order(hms(names(df2)))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...