首页 文章

在R中将因子转换为时间

提问于
浏览
1

我有一个小问题,我似乎无法弄明白 . 我搜索了几个主题和网站以找到解决方案,我尝试过很多不同的东西,但似乎没有什么工作..
我有一个包含两列的数据集,一列用于日期,一列用于时间:

$ StartDate:日期,格式:"2013-09-01" "2013-09-01" "2013-09-01" "2013-09-01" ...
$ StartTime:因子w / 43级"00:02:43","00:07:05",..:

正如您所看到的,我已经将“StartDate”列转换为“Date”,我想将StartTime列转换为“POSIXct”..我有一个大的数据集,我分裂了,在这个大数据集中我有变量date和时间设置正确 . 我使用以下循环拆分文件:

for  (Cow in unique(df$CowID)){   #loop through each level of CowID
  df <- RawData[df$CowID == Cow,]      #extract all rows where CowID equals Cow
  write.csv(df, paste("CowID_",Cow,".csv",sep = ""),row.names = F)}    #write new dataframe to .csv

我应该使用额外的代码来保存变量吗?使用这个循环后,我得到68个不同的.csv文件,然后我使用下一个代码分别读入R:

C292 <- read.csv(file = "C:\\...\\CowID_12292.csv",
     header = T, skip = 0, colClasses = c("StartDate" = "Date", "Date" = "Date", 
     "StartTime" = "character", "Time" = "character"))

当然,现在这些变量的时间是"chr" . 我不知道如何转换这个..任何人都可以帮助我吗?我试过 as.POSIXct() ,但这似乎没有用,我只在列中的NA ..

提前致谢!

ADD> dput(head(C292))

结构(列表(CowID = c(12292L,12292L,12292L,12292L,12292L,12292L),StartDate =结构(c(15949,15949,15949,15949,15949,15949),class =“Date”),StartTime = c(“02:16:16”,“02:16:16”,“02:16:16”,“02:16:16”,“02:16:16”,“02:16:16”)

我真的需要将日期添加到列时间吗?或者还有一种方法可以将其排除,但仍保留变量POSIXct?我想按日期分割文件,然后在24小时的时间线上绘制日期 . 我不知道这是否可能,我在R中相当不错 . 但是,这是一个非常聪明的程序,所以我想这是可能的 . 只需要找到一种方法来做到这一点!

1 回答

  • 1

    您需要包含使用as.POSIXct()的日期和时间 . 试试这个:

    as.POSIXct(paste(C292$StartDate, as.character(C292$StartTime)))
    

相关问题