我有一个小问题,我似乎无法弄明白。我搜索了几个主题和网站以找到解决方案,我尝试了很多不同的东西,但似乎没有任何工作。
我有一个包含两列的数据集,一个用于日期,一个用于时间:
$ 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”..我有一个大的数据集,我分裂了,在这个大数据集中,我有变量日期和时间设置正确。我使用以下循环来分割文件:
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&gt; dput(头(C292))
结构(列表(CowID = c)(12292L,12292L,12292L,12292L,12292L, 12292L),StartDate = structure(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中相当不错。但是,这是一个非常聪明的程序,所以我想这是可能的。只需找出办法就可以了!
答案 0 :(得分:1)
您需要在时间中包含使用as.POSIXct()的日期。 试试这个:
as.POSIXct(paste(C292$StartDate, as.character(C292$StartTime)))