阅读 R 中的 xlsx,其中有一列是关于时间的。如何删除额外添加的日期R?

read xlsx in R with one column about Time. How to delete the date R added additionally?

我有一个 excel table 并想使用 read_xlsx 将其转换为 R 数据帧。

原来,在excel中,数据是这样的:

dep_time
15:37:48
04:05:14

然而,在我使用read_xlsx之后,时间栏是这样的:

dep_time
1899-12-31 15:37:48
1899-12-31 04:05:14

我不想在我未来的绘图中有日期。我怎样才能避免这种情况?

谢谢!

这里有两种解决问题的方法。
他们都使用辅助函数to_times来提取列值的时间部分。

基础 R

# sample data
x <- '1899-12-31 15:37:48
1899-12-31 04:05:14'

dep_time <- scan(text = x, what = character(), sep = "\n")
df1 <- data.frame(dep_time)

# code
to_times <- function(x) {
  y <- as.POSIXct(x)
  format(y, "%H:%M:%S")
}

df1$dep_time <- to_times(df1$dep_time)
df1
#>   dep_time
#> 1 15:37:48
#> 2 04:05:14

str(df1)
#> 'data.frame':    2 obs. of  1 variable:
#>  $ dep_time: chr  "15:37:48" "04:05:14"

reprex package (v2.0.1)

于 2022-05-04 创建

套餐chron

to_times <- function(x) {
  y <- sub("^[[:digit:]\-]+ ([[:digit:]\:]+)$", "\1", x)
  chron::times(y)
}

df1$dep_time <- to_times(df1$dep_time)
df1
#>   dep_time
#> 1 15:37:48
#> 2 04:05:14

str(df1)
#> 'data.frame':    2 obs. of  1 variable:
#>  $ dep_time: 'times' num  15:37:48 04:05:14
#>   ..- attr(*, "format")= chr "h:m:s"

reprex package (v2.0.1)

于 2022-05-04 创建