使用 chorn 将 chr 转换为时间格式
Convert chr to time format using chorn
我正在尝试将我的日期数据集从 chr 格式转换为时间格式。
这是我的代码:
time<-f1%>%
mutate(`ymd_hms(Timestamp)`=strftime(f1$`ymd_hms(Timestamp)`, tz="GMT", format = "%H:%M:%S"))%>%
transform(as.numeric(f1$SpotPrice))
chron(times=f1$`ymd_hms(Timestamp)`)
显示错误:
Error in chron(., times = f1$`ymd_hms(Timestamp)`) :
. and f1$`ymd_hms(Timestamp)` must have equal lengths
如果我评论它
time<-f1%>%
mutate(`ymd_hms(Timestamp)`=strftime(f1$`ymd_hms(Timestamp)`, tz="GMT", format = "%H:%M:%S"))%>%
transform(as.numeric(f1$SpotPrice))
#chron(times=f1$`ymd_hms(Timestamp)`)
输出为
'data.frame': 10078 obs. of 4 variables:
$ InstanceType : chr " a1.2xlarge" " a1.2xlarge" " a1.2xlarge" " a1.4xlarge" ...
$ ProductDescription: chr " Linux/UNIX" " Red Hat Enterprise Linux" " SUSE Linux" " Linux/UNIX" ...
$ SpotPrice : num 0.0671 0.1971 0.2171 0.1343 0.2643 ...
$ ymd_hms(Timestamp): chr "06:17:23" "06:17:23" "06:17:23" "12:15:54" ...
此外,我将此表扬用作单个变量,如下所示:
f2<-chron(times=DfUse$`ymd_hms(Timestamp)`)
有效并显示输出
'times' num [1:10078] 06:17:23 06:17:23 06:17:23 12:15:54 12:15:54 ...
- attr(*, "format")= chr "h:m:s"`
但我想将它与我的整个数据集一起使用,而不是将它单独用作单个变量。
提前致谢。
代码中几乎没有语法错误和改进空间。
虽然左侧的 ymd_hms(Timestamp) =
有效,但您不需要它,因为它会创建一个具有该名称的列。只使用 Timestamp
应该是好的。
不要在 dplyr
管道中使用 $
。
通常最好将基本 R 函数和 dplyr
函数分开。 transform
以 R 为基数,但您可以使用相同的 mutate
管道将 SpotPrice
转换为数字。
library(dplyr)
time<-f1%>%
mutate(Timestamp = strftime(ymd_hms(Timestamp), tz="GMT", format = "%H:%M:%S"),
SpotPrice = as.numeric(SpotPrice),
Timestamp = chron::chron(times=Timestamp))
我正在尝试将我的日期数据集从 chr 格式转换为时间格式。
这是我的代码:
time<-f1%>%
mutate(`ymd_hms(Timestamp)`=strftime(f1$`ymd_hms(Timestamp)`, tz="GMT", format = "%H:%M:%S"))%>%
transform(as.numeric(f1$SpotPrice))
chron(times=f1$`ymd_hms(Timestamp)`)
显示错误:
Error in chron(., times = f1$`ymd_hms(Timestamp)`) :
. and f1$`ymd_hms(Timestamp)` must have equal lengths
如果我评论它
time<-f1%>%
mutate(`ymd_hms(Timestamp)`=strftime(f1$`ymd_hms(Timestamp)`, tz="GMT", format = "%H:%M:%S"))%>%
transform(as.numeric(f1$SpotPrice))
#chron(times=f1$`ymd_hms(Timestamp)`)
输出为
'data.frame': 10078 obs. of 4 variables:
$ InstanceType : chr " a1.2xlarge" " a1.2xlarge" " a1.2xlarge" " a1.4xlarge" ...
$ ProductDescription: chr " Linux/UNIX" " Red Hat Enterprise Linux" " SUSE Linux" " Linux/UNIX" ...
$ SpotPrice : num 0.0671 0.1971 0.2171 0.1343 0.2643 ...
$ ymd_hms(Timestamp): chr "06:17:23" "06:17:23" "06:17:23" "12:15:54" ...
此外,我将此表扬用作单个变量,如下所示:
f2<-chron(times=DfUse$`ymd_hms(Timestamp)`)
有效并显示输出
'times' num [1:10078] 06:17:23 06:17:23 06:17:23 12:15:54 12:15:54 ...
- attr(*, "format")= chr "h:m:s"`
但我想将它与我的整个数据集一起使用,而不是将它单独用作单个变量。
提前致谢。
代码中几乎没有语法错误和改进空间。
虽然左侧的
ymd_hms(Timestamp) =
有效,但您不需要它,因为它会创建一个具有该名称的列。只使用Timestamp
应该是好的。不要在
dplyr
管道中使用$
。通常最好将基本 R 函数和
dplyr
函数分开。transform
以 R 为基数,但您可以使用相同的mutate
管道将SpotPrice
转换为数字。
library(dplyr)
time<-f1%>%
mutate(Timestamp = strftime(ymd_hms(Timestamp), tz="GMT", format = "%H:%M:%S"),
SpotPrice = as.numeric(SpotPrice),
Timestamp = chron::chron(times=Timestamp))