R - 将整数转换为小时/分钟

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (6)

感谢您输入此主题,我相信这是一个简单的问题,所以在这里。

我有两列,一个用于HOURS,一个用于MINUTES,格式为24:60,两列都是INTEGERS,我想创建一个TIME(?)格式的列,例如:

Hour(Integer)        Minutes(Integer)        Time Column
      5                     30                  5:30
      7                     27                  7:27
     11                     05                 11:05
     17                     45                 17:45
     22                     15                 22:15

非常感谢,谢谢。

提问于
用户回答回答于
library(lubridate)
library(tidyverse)
library(stringr)
df <- tribble(
~Hour,~Minutes,
5,30,
7,27,
11,05,
17,45,
22,15)

df %>% 
  mutate(time = str_c(Hour,Minutes,sep = ":")) %>% 
  mutate(time = time %>% hm())
用户回答回答于

有几种方法可以做到这一点,你可以通过响应量来判断。但是我总是觉得更容易使用的路径是lubridate::parse_date_time因为可以解决此类以及此类的许多其他数据操作问题。

df <- data.frame(Hour = c(5,7,11,17,22), 
             Minutes  = c(30,27,05,45,15))

library(dplyr)
library(lubridate)

df <- df %>% 
  dplyr::mutate(Time = format(strptime(lubridate::parse_date_time(paste(Hour, Minutes, sep = ":"), 'H:M'),
                                       "%Y-%m-%d %H:%M:%S"),'%H:%M'))

# Or in a more didactic way
df <- df %>% 
  dplyr::mutate(Time = paste(Hour, Minutes, sep = ":"),
                Time = lubridate::parse_date_time(Time, 'H:M'),
                Time = format(strptime(Time, "%Y-%m-%d %H:%M:%S"),'%H:%M'))

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问5 回答
  • Dingda

    Dingda · 站长 (已认证)

    4 粉丝0 提问3 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券