r - 如何在R中仅创建时间

标签 r dataframe datetime timestamp format

我的数据框中有一个时间列,其格式是字符:

TIME
10:54:10.23
10:54:11.58
10:56:34.21
11:57:11.23

所以你看我最后也有毫秒,但我尝试只得到 %H-%M-%S没有 .x 毫秒。我尝试通过以下方式创建一个新专栏: data$hms <- format(as.POSIXct(data$TIME), "%H:%M:%S")但失败了...Error in as.POSIXlt.character(x, tz, ...): String is not in a unique standard format .

感谢每一个帮助。

最佳答案

在使用 str_remove 删除最后两位数字后,我们可以使用 chron 包中的 times

#install.packages("chron")
library(chron)
library(dplyr)
library(stringr)
df %>% 
    mutate(TIME = chron(times=str_remove(TIME, '\\..*$')))

输出:

  TIME    
  <times> 
1 10:54:10
2 10:54:11
3 10:56:34
4 11:57:11

数据

df <- structure(list(TIME = c("10:54:10.23", "10:54:11.58", "10:56:34.21", 
                        "11:57:11.23")), class = "data.frame", row.names = c(NA, -4L))

关于r - 如何在R中仅创建时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68950873/

相关文章:

javascript - 我很难理解如何处理日期

python - 如何在python中将带有z的unix时间戳转换为日期时间

python - DataFrame 中的日期为工作日

r - 如何在 str_replace_all 和 hunspell_suggest 上使用 lapply 来替换所有拼写错误的单词?

Roxygen2 在构建和检查期间无法找到类定义

在指定的时间间隔运行 R 脚本

python - 如何过滤 pandas 数据框中的行,其中列的值等于列表的某个值

r - R Markdown中的调试代码

r - 如何使用 R 获得 LOWESS 拟合的置信区间?

python - 根据不同数据帧中的值,用数据帧中的 float 替换字符串