1

我有一个小问题,我似乎无法弄清楚。我搜索了几个主题和网站以找到解决方案,并且尝试了许多不同的方法,但似乎没有任何效果。
我有一个包含两列的数据集,一列用于日期,一列用于时间:

$ StartDate : 日期, 格式: "2013-09-01" "2013-09-01" "2013-09-01" "2013-09-01" ...
$ StartTime : 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 ..

提前致谢!

添加 > 输入(头(C292))

结构(列表(CowID = c(12292L、12292L、12292L、12292L、12292L、12292L),开始日期 = 结构(c(15949、15949、15949、15949、15949、15949),类 =“日期”),开始时间 = c (“02:16:16”、“02:16:16”、“02:16:16”、“02:16:16”、“02:16:16”、“02:16:16”)

我真的需要将日期添加到列时间中吗?或者有没有办法把它排除在外,但仍然保留变量 POSIXct?我想按日期拆分文件,然后在 24 小时的时间线上绘制日期。我什至不知道这是否可能,我是 R 中的菜鸟。但是,这是一个非常聪明的程序,所以我想这是可能的。只需要想办法去做!

4

1 回答 1

1

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

as.POSIXct(paste(C292$StartDate, as.character(C292$StartTime)))
于 2013-10-16T07:48:16.803 回答