【问题标题】:Convert factor to time in R在R中将因子转换为时间
【发布时间】:2013-10-16 07:34:19
【问题描述】:

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

$ 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), class= "日期"), 开始时间 = c("02:16:16", "02:16:16", “02:16:16”、“02:16:16”、“02:16:16”、“02:16:16”)

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

【问题讨论】:

  • 你能粘贴dput(head(C292))的输出吗?
  • 我把它放进去!你能帮帮我吗?
  • 实际上,您输入的是head(C292) 的结果,而不是dput(head(C392)) 的结果...第一个告诉我们您在屏幕上看到的内容,而不是R 使用的数据类型。 dput 允许我们在 R 会话中拥有与您完全相同的数据,因此我们实际上可以为您提供帮助。我看到你已经接受了一个答案。所以如果你还需要帮助,请贴上`dput(head(C292))`的结果,告诉我们还有什么不清楚的地方。
  • 啊,我明白了!抱歉,我看错了。我已经安装了包“chron”,这似乎更有意义。我使用了“次”方法,到目前为止它有效!感谢您抽出宝贵的时间来帮助我,尽管我的反应很慢!
  • @Sophia 的回复是否回答了您的问题?如果没有,还有什么不清楚的地方?而且我担心你的dput 输出是乱码......它是list,而不是data.frameread.csv 应该产生。

标签: r time


【解决方案1】:

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

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

【讨论】:

  • 非常感谢!我不知道我不得不在其中包含日期。现在我可以继续我的分析了。谢谢!
  • 这对于庞大的数据记录来说太费时间了,有没有人可以替代?
猜你喜欢
  • 2020-10-22
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
  • 2014-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多