[英]R Change a column class from numeric to time
我是 R 的新手,並且正在使用它進行一些數據分析並且遇到了障礙。 我想將 dataframe 中我的兩列( 7
和8
)的 class 從數字更改為時間。 目前它們顯示在POSIX
中,我希望它們以我嘗試過的H:M
格式顯示為時間:
library(tidyverse)
library(lubridate)
df[7, 8] <- lapply(df[7, 8],
as.POSIXct, tz = "GMT", format,
tryFormats = c("%H:%M"),
optional = TRUE)
它會出現以下錯誤消息:
as.POSIXct.default(origin, tz = "GMT", ...) 中的錯誤:不知道如何將“origin”轉換為 class “POSIXct”
任何幫助將非常感激
這是我的 dataframe 第7
列和8
列的示例
df <- structure(list(MAU_visit_time = c(42161.5416666667, 42154.8368055556,
42160.6666666667, 42154.9583333333, NA), time_seen = c(42161.625,
42154.9027777778, 42160.7222222222, 42154.0416666667, 42154.66875
)), class = "data.frame", row.names = c(NA, -5L))
任何幫助將非常感激
這是你可以做的。 我相信細胞是秒,所以你可以使用
library(lubridate)
df$MAU_visit_time <- seconds_to_period(df$MAU_visit_time)
df$time_seen <- seconds_to_period(df$time_seen)
# MAU_visit_time time_seen
# 1 11H 42M 41.5416666667006S 11H 42M 41.625S
# 2 11H 42M 34.8368055555984S 11H 42M 34.9027777778028S
# 3 11H 42M 40.6666666667006S 11H 42M 40.7222222221972S
# 4 11H 42M 34.9583333332994S 11H 42M 34.0416666667006S
# 5 <NA> 11H 42M 34.6687499999971S
# -------------------------------------------------------------------------
# To extract hour(h), minute(m) and second(s)
hour(df$MAU_visit_time[1])
#11
minute(df$MAU_visit_time[1])
#42
second(df$MAU_visit_time[1])
#41.54167
hms(df$MAU_visit_time[1])
#"11H 42M 41.5416666667006S"
如果您想以11:42:41.625
的方式格式化列,您可以使用paste
使用它進行格式化,但請記住,您將丟失lubridate
日期格式(列將是字符)。
df$MAU_visit_time <- paste(hour(df$MAU_visit_time),minute(df$MAU_visit_time),second(df$MAU_visit_time),sep=":")
df$time_seen <- paste(hour(df$time_seen), minute(df$time_seen), second(df$time_seen),sep=":")
# -------------------------------------------------------------------------
# MAU_visit_time time_seen
# 1 11:42:41.5416666667006 11:42:41.625
# 2 11:42:34.8368055555984 11:42:34.9027777778028
# 3 11:42:40.6666666667006 11:42:40.7222222221972
# 4 11:42:34.9583333332994 11:42:34.0416666667006
# 5 NA:NA:NA 11:42:34.6687499999971
希望那是你想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.