用一列在R中读取XLSX。如何删除日期r添加?

发布于 2025-01-26 03:54:28 字数 309 浏览 3 评论 0原文

我有一个Excel表,想使用read_xlsx将其转换为R DataFrame。

最初,在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

我不想在未来的图中绘制日期。我该如何避免这种情况?

谢谢!

I have one excel table and would like to use read_xlsx to convert it as an R dataframe.

Originally, in excel, the data looks like this:

dep_time
15:37:48
04:05:14

However, after I use the read_xlsx, the time column is something like below:

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

I don't want to have the date in my future figure plotting. How can I avoid this?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不一样的天空 2025-02-02 03:54:28

这是解决问题的两种替代方法。
他们都使用辅助函数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"

软件包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"

在2022-05-04创建的 reprex package (v2.0.1)

Here are two alternative ways to solve the problem.
They both use an auxiliary function to_times to extract the time part of the column value.

Base 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"

Created on 2022-05-04 by the reprex package (v2.0.1)

Package chron

to_times <- function(x) {
  y <- sub("^[[:digit:]\\-]+ ([[:digit:]\\:]+)
quot;, "\\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"

Created on 2022-05-04 by the reprex package (v2.0.1)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文