Как установить метку времени в качестве индекса для фрейма данных в R - PullRequest
0 голосов
/ 30 октября 2018

У меня есть датафрейм под названием «пробная версия». Я объединил дату и время во фрейме данных, чтобы получить поле с меткой времени в качестве POSIXct. Я хочу установить эту объединенную дату или время и метки времени для моего фрейма данных «пробная», как я могу это сделать? Я видел подобные вопросы по этому вопросу без успеха. Код выглядит следующим образом:

 trial <- read.csv("2018_05_04_h093500.csv", header=TRUE, skip = 16, sep=",")
 trial$Date <- with(trial, as.POSIXct(paste(as.Date(Date, format="%Y/%m/%d"), Time)))
 dtPOSIXct <- as.POSIXct(trial$Date )
 dtTime <- as.numeric(dtPOSIXct - trunc(dtPOSIXct, "days"))
 class(dtTime) <- "POSIXct"

1 Ответ

0 голосов
/ 30 октября 2018

Если вы говорите об именах строк, эквивалентных индексу R в пандах, они не могут быть датами POSIXct, они должны быть символами.

# sample data
x <- data.frame('a' = 1:3, 'b' = c('a', 'b', 'c'))
print(x)

#                    a b
#2018-01-01 15:51:33 1 a
#2018-01-04 11:42:31 2 b
#2018-01-07 22:04:41 3 c

dates <- c('2018-01-01 15:51:33', '2018-01-04 11:42:31', '2018-01-07 22:04:41')
rownames(x) <- as.POSIXct(dates, format = '%Y-%m-%d %H:%M:%S')
print(class(rownames(x)[1]))
# [1] "character"

Тем не менее, вы все равно можете привести их к POSIXct (или к любому другому классу, очевидно) во время оценки за счет некоторых издержек и беспорядка кода:

# print x where rownames, when coerced to POSIXct, represent dates after d
d <- as.POSIXct('2018-01-03 00:00:00', '%Y-%m-%d %H:%M:%S')
x[as.POSIXct(rownames(x), format = f) > d, ]

#                    a b
#2018-01-04 11:42:31 2 b
#2018-01-07 22:04:41 3 c

Однако, возможно, более простым подходом было бы просто иметь произвольный столбец, эффективно действующий в качестве индекса даты и времени:

x$date <- as.POSIXct(dates, format = '%Y-%m-%d %H:%M:%S')
class(x$date[1])
# [1] "POSIXct" "POSIXt" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...