如何简化 R 中的日期时间戳? [英] How can I simplify my date-time stamp in R?

查看:53
本文介绍了如何简化 R 中的日期时间戳?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 RStudio.我的数据框包含一个日期时间戳,我想对其进行简化以供进一步使用.我还没有在档案中找到正确的答案.

I'm using RStudio. My data frame contains a date-time stamp which I want to simplify for further use. I couldn't find a proper answer in the archive, yet.

这是我的数据的样子:

df <- read.table("datafile.csv", skip = 9, dec = ".", sep = ",", stringsAsFactors = F)
names(df) <- df[1,]
df <- df[-c(1),]
head(df)

                      Time       10cm       20cm       30cm       40cm      50cm      60cm      70cm      80cm
    2 05 Apr 2019 09:46:13  20.706751  26.204191  23.663700  18.041510  3.507654  5.644918  3.947458  0.926415
    3 11 Apr 2019 08:36:32  18.457157  25.762735  23.822021  18.596792  3.829793  6.639636  4.313009  1.002555
    4 19 Apr 2019 09:24:16  17.224855  24.033939  21.703968  16.956991  3.507654  6.827912  4.417910  1.046471
    5 26 Apr 2019 12:14:05  16.603245  22.160437  19.541498  15.735872  3.237127  6.169124  3.987147  1.002555

时间显示为字符.现在我想通过使用以下命令之一来摆脱时间戳(从%d.%m.%Y %H:%M:%S"到%Y-%m-%d").

Time is displayed as character. Now I wanted to get rid of the time stamp (from "%d.%m.%Y %H:%M:%S" to "%Y-%m-%d") by using one of the following commands.

(1)

df$Time <- format(as.POSIXct(strptime(df$Time,"%d.%m.%Y %H:%M:%S",tz="")) ,format = "%Y-%m-%d") head(df)
          Time       10cm       20cm       30cm       40cm      50cm      60cm      70cm      80cm      90cm
        2 <NA>  20.706751  26.204191  23.663700  18.041510  3.507654  5.644918  3.947458  0.926415  1.304021
        3 <NA>  18.457157  25.762735  23.822021  18.596792  3.829793  6.639636  4.313009  1.002555  1.440603
        4 <NA>  17.224855  24.033939  21.703968  16.956991  3.507654  6.827912  4.417910  1.046471  1.574125
        5 <NA>  16.603245  22.160437  19.541498  15.735872  3.237127  6.169124  3.987147  1.002555  1.397690

(2)

df$Time = as.Date((df$Time), format = "%Y-%m-%d") head(df)
  Time       10cm       20cm       30cm       40cm      50cm      60cm      70cm      80cm      90cm
2 <NA>  20.706751  26.204191  23.663700  18.041510  3.507654  5.644918  3.947458  0.926415  1.304021
3 <NA>  18.457157  25.762735  23.822021  18.596792  3.829793  6.639636  4.313009  1.002555  1.440603
4 <NA>  17.224855  24.033939  21.703968  16.956991  3.507654  6.827912  4.417910  1.046471  1.574125
5 <NA>  16.603245  22.160437  19.541498  15.735872  3.237127  6.169124  3.987147  1.002555  1.397690

(3)

format(as.Date(strptime(df$Time, "%d.%m.%Y %H:%M:%S")), "%Y-%m-%d")
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

...但正如你所看到的,我只收到他们每个人的 NA.

...but as you can see I only receive NA for each of them.

我的错误在哪里?如果有人对编码有一些建议和解释,我将不胜感激.

Where's my mistake? If anyone has some advice for coding AND an explanation I would appreciate that.

推荐答案

发现一个错字...现在可以使用了.

Found a typo...now it works.

df$Time <- format(as.POSIXct(df$Time,"%d %b %Y %H:%M:%S",tz=""), format = "%Y-%m-%d")
 head(df)
        Time       10cm       20cm       30cm       40cm      50cm      60cm      70cm      80cm      90cm
2 2019-04-05  20.706751  26.204191  23.663700  18.041510  3.507654  5.644918  3.947458  0.926415  1.304021
3 2019-04-11  18.457157  25.762735  23.822021  18.596792  3.829793  6.639636  4.313009  1.002555  1.440603
4 2019-04-19  17.224855  24.033939  21.703968  16.956991  3.507654  6.827912  4.417910  1.046471  1.574125
5 2019-04-26  16.603245  22.160437  19.541498  15.735872  3.237127  6.169124  3.987147  1.002555  1.397690

这篇关于如何简化 R 中的日期时间戳?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆