R 应用和 as.POSIXct 运行 内存不足
R sapply and as.POSIXct running out of memory
我有一个名为 t
的数据框,包含 57247 行 27 个变量。数据框是从一个 16 MB 的 .tsv 文件导入的,所以它不是那么大。其中一列是 approved_date
,它包含 MySQL 时间戳字符串的因子。一个例子是 "2007-10-08 06:38:18"
。
我有一个函数可以将这个字符串转换成 POSIXct,一个整数。我想为整个专栏执行此操作。
convert_datetime <- function(dt) as.POSIXct(dt, tz="Asia/Hong_Kong")
当我尝试前 10 行时,一切正常:时间戳被转换为整数。
x <- head(t, 10)
x$approved_date <- sapply(x$approved_date, convert_datetime)
但是,当我尝试使用整个 table、
t$approved_date <- sapply(t$approved_date, convert_datetime)
RStudio 使用多达 6 GB 的 RAM 并且内存不足。很明显我在这里做错了什么。我怎样才能获得我想要的功能?使用 R v3.0.2。
首先,R 3.0 太老了。如果可能的话,你真的应该升级。
其次,as.POSIXct被矢量化。
x$approved_date <- as.POSIXct(x$approved_date, tz=*)
我有一个名为 t
的数据框,包含 57247 行 27 个变量。数据框是从一个 16 MB 的 .tsv 文件导入的,所以它不是那么大。其中一列是 approved_date
,它包含 MySQL 时间戳字符串的因子。一个例子是 "2007-10-08 06:38:18"
。
我有一个函数可以将这个字符串转换成 POSIXct,一个整数。我想为整个专栏执行此操作。
convert_datetime <- function(dt) as.POSIXct(dt, tz="Asia/Hong_Kong")
当我尝试前 10 行时,一切正常:时间戳被转换为整数。
x <- head(t, 10)
x$approved_date <- sapply(x$approved_date, convert_datetime)
但是,当我尝试使用整个 table、
t$approved_date <- sapply(t$approved_date, convert_datetime)
RStudio 使用多达 6 GB 的 RAM 并且内存不足。很明显我在这里做错了什么。我怎样才能获得我想要的功能?使用 R v3.0.2。
首先,R 3.0 太老了。如果可能的话,你真的应该升级。
其次,as.POSIXct被矢量化。
x$approved_date <- as.POSIXct(x$approved_date, tz=*)