r - R中一列中的小时和分钟

标签 r

我有一个简单的数据框。我想从中添加另一列记录时间(小时和分钟,24 小时制)。然后我将针对变量绘制此列。由于日期都一样,我只对时间感兴趣。这是我到目前为止所尝试的。

a <- c(1:6)
b <- c("05/12/2012 05:00","05/12/2012 06:55","05/12/2012 07:10",
       "05/12/2012 10:23", "05/12/2012 11:43","05/12/2012 13:04")
c <-c("0","0","0","1","1","1")
df1 <- data.frame(a,b,c,stringsAsFactors = FALSE)

a <- df1$a
b <- strptime(df1$b, "%d/%m/%Y %H:%M")
c <- as.numeric(df1$c)
hour <- as.numeric(format(b, "%H"))
min <- as.numeric(format(b, "%M"))
date <- format(b, "%x")
time <- hour + min

df2 <- data.frame(a, b, c, hour, min, date, time)

我被告知 here通过将数字分开,转换为类似的单位,然后添加来手动转换分钟和小时。但是我很挣扎,因为早上 5 点只是被导入为 5。

如果有人能建议我如何正确地做到这一点,我将不胜感激。

最佳答案

有许多用于日期和时间的转换工具,以及一整套要使用的包。我喜欢与 POSIXlt 一起工作在这种情况下,因为您可以通过从列表中提取它们来提取您需要的任何信息。

例如:

a <- c(1:6)
b <- c("05/12/2012 05:00","05/12/2012 06:55","05/12/2012 07:10",
       "05/12/2012 10:23", "05/12/2012 11:43","05/12/2012 13:04")
c <-c("0","0","0","1","1","1")
df1 <- data.frame(a,b,c,stringsAsFactors = FALSE)

df2 <- within(df1,{
  posb <- as.POSIXlt(b,format="%d/%m/%Y %H:%M")
  hours <- posb$hour
  mins <- posb$min
  dates <- format(posb, "%x")
  time <- format(posb, "%H:%M")
  posb <- NULL  # cleanup
})

这使 :
> df2
  a                b c  time     dates mins hours
1 1 05/12/2012 05:00 0 05:00 12/5/2012    0     5
2 2 05/12/2012 06:55 0 06:55 12/5/2012   55     6
3 3 05/12/2012 07:10 0 07:10 12/5/2012   10     7
4 4 05/12/2012 10:23 1 10:23 12/5/2012   23    10
5 5 05/12/2012 11:43 1 11:43 12/5/2012   43    11
6 6 05/12/2012 13:04 1 13:04 12/5/2012    4    13

有关更多信息,另请参阅:
  • ?POSIXlt有关 POSIXt 类的更多信息
  • ?format有关格式选项的更多信息
  • ?strptime有关格式选项和转换为字符的更多信息
  • lubridate package用于替代功能
  • timeDate package更多替代功能
  • ...
  • 关于r - R中一列中的小时和分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14775313/

    相关文章:

    r - 如何评估 mutate() 中的表达式

    r - 如何将单词添加到语料库中的文档中?

    r - 如何在 Markdown 标题中强制换行?

    r - 尝试使用 R 包 magick 时 loadNamespace 出错

    r - 我总是丢失 R 中的时间索引——我该怎么办?

    r - 保留 geom_rect() 中的顺序

    python - 从 Python 3.1.1 到 R 的最佳接口(interface)是什么?

    r - R 中的数据框不重复类别

    r - 将嵌套列表转换为列表

    r - 分离组内不重叠的间隔并在 R 中计数