загрузить данные из файла xlsx в виде даты и времени - PullRequest
0 голосов
/ 15 марта 2019

Теперь файл xlsx содержал столбец даты в виде:

Date
2019-3-1 0:15
2019-3-1 19:15
2019-3-1 23:15

Как я могу загрузить его в data.frame как тип данных для чтения даты и времени?Мой инструмент - пакет openxlsx, и я попробовал как:

df <- readWorkbook(xlsxFile = '0301-0314.xlsx',sheet=1)

Ответы [ 2 ]

2 голосов
/ 15 марта 2019

Сначала вы читаете набор данных, используя любую библиотеку.Затем вы можете попробовать as.POSIXlt или as.POSIXct, чтобы определить формат даты и времени.Это также позволяет вам предоставлять информацию о часовом поясе вместе с форматом даты и времени.Пример:

> sampledf <- data.frame(DateTime = c("2019-3-1 0:15",
+                            "2019-3-1 19:15",
+                            "2019-3-1 23:15")
+ )
> str(sampledf$DateTime)
 Factor w/ 3 levels "2019-3-1 0:15",..: 1 2 3
> sampledf$DateTime <- as.POSIXlt(sampledf$DateTime ,"GMT",format = "%Y-%m-%d %H:%M")
> str(sampledf$DateTime)
 POSIXlt[1:3], format: "2019-03-01 00:15:00" "2019-03-01 19:15:00" ...

Информация о часовом поясе «GMT» можно заменить любым часовым поясом.Подробнее о различных параметрах форматирования времени в R см. здесь.

1 голос
/ 15 марта 2019

Это будет работать:

# Create example dataset:
df <- data.frame(Date = c("2019-3-1 0:15",
                        "2019-3-1 19:15",
                        "2019-3-1 23:15")
                )
df$Date <- as.character(df$Date)
# Format "Date" as date and time:
df$time <- strptime(as.character(df$Date), "%Y-%m-%d %H:%M")
# Check:
str(df)
# If then you would like to count time, for example in number of hours, from a certain initial time (e.g. 2019-3-1 0:15) try:
df$timestep <- as.numeric(difftime(time2="2019-3-1 0:15", time1=df$time, units="hours"))
...