我已加载数据记录器CSV文件.在这里我包括一个片段.Date_time列按月/日/年和小时排序:分钟:秒:

date_time<-c("6/5/22 10:22:01 AM", "6/5/22 10:23:01 AM", "6/5/22 10:24:01 AM", "6/5/22 10:25:01 AM", "6/5/22 10:26:01 AM", "6/5/22 10:27:01 AM",
 "6/5/22 10:28:01 AM", "6/5/22 10:29:01 AM", "6/5/22 10:30:01 AM", "6/5/22 10:31:01 AM", "6/5/22 10:32:01 AM", "6/5/22 10:33:01 AM")
temp<-c(21.296, 22.047, 22.798, 22.422, 22.172, 22.673, 22.360, 22.110, 21.922, 21.797, 21.672, 21.609)

df<-data.frame(date_time,temp)
df

         date_time   temp
1  6/5/22 10:22:01 AM 21.296
2  6/5/22 10:23:01 AM 22.047
3  6/5/22 10:24:01 AM 22.798
4  6/5/22 10:25:01 AM 22.422
5  6/5/22 10:26:01 AM 22.172
6  6/5/22 10:27:01 AM 22.673
7  6/5/22 10:28:01 AM 22.360
8  6/5/22 10:29:01 AM 22.110
9  6/5/22 10:30:01 AM 21.922
10 6/5/22 10:31:01 AM 21.797
11 6/5/22 10:32:01 AM 21.672
12 6/5/22 10:33:01 AM 21.609

Date_time列显示为字符,

str(df)
'data.frame':   12 obs. of  2 variables:
 $ date_time: chr  "6/5/22 10:22:01 AM" "6/5/22 10:23:01 AM" "6/5/22 10:24:01 AM" "6/5/22 10:25:01 AM" ...
 $ temp     : num  21.3 22 22.8 22.4 22.2 ...

但我希望它是一个posixct变量,所以我应用了as.POSIXct函数:

df$date_time<-as.POSIXct(df$date_time)


 df
             date_time   temp
1  0006-05-22 10:22:01 21.296
2  0006-05-22 10:23:01 22.047
3  0006-05-22 10:24:01 22.798
4  0006-05-22 10:25:01 22.422
5  0006-05-22 10:26:01 22.172
6  0006-05-22 10:27:01 22.673
7  0006-05-22 10:28:01 22.360
8  0006-05-22 10:29:01 22.110
9  0006-05-22 10:30:01 21.922
10 0006-05-22 10:31:01 21.797
11 0006-05-22 10:32:01 21.672
12 0006-05-22 10:33:01 21.609

然而,它将日子视为年,反之亦然. 通过指定格式,它不起作用:

df$date_time<-as.POSIXct(df$date_time,format="%dd-%mm-%YYYY %H:%M:%S")
df

             date_time   temp
1  0006-05-22 10:22:01 21.296
2  0006-05-22 10:23:01 22.047
3  0006-05-22 10:24:01 22.798
4  0006-05-22 10:25:01 22.422
5  0006-05-22 10:26:01 22.172
6  0006-05-22 10:27:01 22.673
7  0006-05-22 10:28:01 22.360
8  0006-05-22 10:29:01 22.110
9  0006-05-22 10:30:01 21.922
10 0006-05-22 10:31:01 21.797
11 0006-05-22 10:32:01 21.672
12 0006-05-22 10:33:01 21.609

我该怎么解决这个问题?任何建议都会有所帮助

提前感谢!

推荐答案

两种 Select :

1-使用as.POSIXct()时您没有使用正确的格式

as.POSIXct(df$date_time, format = "%m/%d/%y %H:%M:%S")

2-使用lubridate包,它具有许多有用的功能来处理日期时间对象

ubridate::mdy_hms(df$date_time)

R相关问答推荐

将带有范围的字符串转换为R中的数字载体

将Multilinetring合并到一个线串中,使用sf生成规则间隔的点

terra nearest()仅为所有`to_id`列返回NA

在不安装软件包的情况下测试更新

如果第一个列表中的元素等于第二个列表的元素,则替换为第三个列表的元素

在for循环中转换rabrame

即使硬币没有被抛出,也要保持对其的跟踪

根据元素和前一个值之间的差值过滤矩阵的元素

在不丢失空值的情况下取消列出嵌套列表

在R函数中使用加号

正在导出默认的RStudio主题,还是设置括号 colored颜色 ?

如何在R中改变fviz_pca_biplot中圆的边界线的 colored颜色 ?

如何删除R中除数字元素以外的所有元素

在R中,如何从一系列具有索引名的变量快速创建数据帧?

生存时间序列的逻辑检验

在GT()中的列之间添加空格

在REST API中使用参数R

了解nchar在列表上的意外行为

如何在一个GGPLATE中绘制多个灰度平滑?

如何修改Rust中的R字符串并将其赋给新的R变量,并使用extendr保留原始R字符串