【问题标题】:How to initialize data.frame with column of type POSIXct?如何使用 POSIXct 类型的列初始化 data.frame?
【发布时间】:2014-06-16 19:07:04
【问题描述】:

我可以通过

初始化一个data.frame
df <- data.frame(a=numeric(), b=character())

但是如何定义一个 POSIXct 类型的列呢?

df <- data.frame(a=numeric(), b=character(), c=POSIXct())

不会工作。

【问题讨论】:

  • 也许df &lt;- data.frame(a=numeric(), b=character(), c=as.POSIXct(character())) 能满足你的需求?
  • @konvas 谢谢,这就是我要找的。你可以把它写成答案,我会给你奖励。

标签: r dataframe posixct


【解决方案1】:

你可以试试

df <- data.frame(a=numeric(), b=character(), c=as.POSIXct(character()))

同样,您可以通过使用as.POSIXct(NA) 创建一个新列,在具有> 0 行的数据框中创建NAs 的POSIXct 列。

【讨论】:

    【解决方案2】:

    上述初始化的附加提示:如果您开始 rbind() 活动以向此空数据框添加行,如果遵循此模式,您可能会遇到如下错误:

    oneDF <- rbind(oneDF,twoDF,stringsAsFactors=FALSE)
    Error in as.POSIXct.default(value) :
      do not know how to convert 'value' to class "POSIXct"
    

    我终于发现删除 stringsAsFactors=FALSE 允许 POSIXct 值(整数时间和时区)转移到目标 DF。

    oneDF <- rbind(oneDF,twoDF)
    

    检查结果:

    unclass(oneDF$mytime)
    [1] 1282089600
    attr(,"tzone")
    [1] "GMT"
    

    【讨论】:

      猜你喜欢
      • 2015-04-24
      • 2016-11-12
      • 1970-01-01
      • 2021-08-08
      • 1970-01-01
      • 2022-08-19
      • 2013-10-04
      • 2016-05-21
      相关资源
      最近更新 更多