R申请更改Posixct中的日期?
R apply to change date in Posixct?
我正在尝试替换我在 df 中的一些 Posixct 数据中的日期。基本上我想过使用这样的东西:
as.POSIXct(sub("\S+", "2018-07-02", x))
x 是我原始数据框行中的值。我认为最有效的方法是使用类似 apply 的方法来遍历行,例如:
apply(df$original.date,1,function(x) as.POSIXct(sub("\S+", "2018-07-02", x)))
然而,它似乎不喜欢它,给我一个关于正长度的错误。我首先想知道我的方法是否合理,如果是的话如何解决。或者,如果有更好的方法,我会洗耳恭听。
谢谢。
函数 sub
和 as.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
需要一个矩阵或数组,而你从数据框中给它一列,即一个向量。您可以使用 lapply
或 sapply
。但这是不必要的,因为如上所示,可以一次性更改整个列。
我正在尝试替换我在 df 中的一些 Posixct 数据中的日期。基本上我想过使用这样的东西:
as.POSIXct(sub("\S+", "2018-07-02", x))
x 是我原始数据框行中的值。我认为最有效的方法是使用类似 apply 的方法来遍历行,例如:
apply(df$original.date,1,function(x) as.POSIXct(sub("\S+", "2018-07-02", x)))
然而,它似乎不喜欢它,给我一个关于正长度的错误。我首先想知道我的方法是否合理,如果是的话如何解决。或者,如果有更好的方法,我会洗耳恭听。
谢谢。
函数 sub
和 as.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
需要一个矩阵或数组,而你从数据框中给它一列,即一个向量。您可以使用 lapply
或 sapply
。但这是不必要的,因为如上所示,可以一次性更改整个列。