7

我有一个可能很简单的问题。我想从数据框中处理一列 POSIXct 对象并生成一个日期时间字符串向量。我尝试使用以下 sapply 调用

dt <- sapply(df$datetime, function(x) format(x,"%Y-%m-%dT%H:%M:%S"))

但无济于事。我不断收到以下错误:

> Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L,  :
invalid 'trim' argument

当我将此函数应用于列中的单个 POSIXct 对象时,我没有问题。所以我现在很困惑问题是什么。我需要对 POSIXct 对象做一些特别的事情吗?

4

1 回答 1

13

format()将采用向量参数,所以 format(df$datetime,"%Y-%m-%dT%H:%M:%S")应该做你需要的。

当您使用 sapply 时,您的对象被强制转换为数字,因此调用了错误的格式方法。您可以通过 using 将它们强制回 POSIXct sapply(df$datetime, function(x) format(as.POSIXct(x, origin="1970-01-01"),"%Y-%m-%dT%H:%M:%S")),但除非您有特殊原因要使用apply,否则请使用上述方法

于 2010-03-20T06:27:45.940 回答