R适用于Posixct中的更改日期?

时间:2018-02-11 11:47:48

标签: r posixct

我试图用df中的某些Posixct数据替换日期。基本上我想过使用这样的东西:

as.POSIXct(sub("\\S+", "2018-07-02", x))

x是原始数据框行中的值。我认为最有效的方法是使用类似于迭代遍历行的东西,例如:

apply(df$original.date,1,function(x) as.POSIXct(sub("\\S+", "2018-07-02", x)))

然而,它似乎并不喜欢它,给我一个关于正长度的错误。我首先想知道我的方法是否合理,如果是的话,如何解决它。或者,如果有更好的方法,我会全力以赴。

谢谢。

1 个答案:

答案 0 :(得分:0)

函数subas.POSIXct是矢量化的,因此调用

df$original.date <- as.POSIXct(sub("\\S+", "2018-07-02", df$original.date))

将替换数据框中的original.date列。

至于您的apply代码:

> apply(df$original.date,1,function(x) as.POSIXct(sub("\\S+", "2018-07-02", x)))
Error in apply(df$original.date, 1, function(x) as.POSIXct(sub("\\S+",  : 
  dim(X) must have a positive length

问题是apply需要一个矩阵或数组,而你从数据框中给它一个列,即一个向量。您可以使用lapplysapply。但这是不必要的,因为如上所示,整个列可以一次改变。