我有一個數據框叫t
57247行27個變量。數據幀是從一個16 MB的.tsv文件導入的,所以它並不那麼龐大。其中一列是approved_date
,其中包含MySQL時間戳字符串的因素。一個例子是"2007-10-08 06:38:18"
。R sapply和as.POSixct內存不足
我有一個函數將這個字符串轉換成一個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)
然而,當我嘗試用全表,
t$approved_date <- sapply(t$approved_date, convert_datetime)
RStudio最多使用6 GB的RAM,運行內存不足。很顯然,我在這裏做錯了事。我如何獲得我想要的功能?使用R v3.0.2。
您可能還有其他事情在這裏。根據taskmgr的說法,我正在使用'sapply'代碼(被Hong Ooi認爲效率低下,我同意),它有一個100k行的data.frame,儘管這肯定很慢,但它可以處理大約200MB的內存。 (R-3.3.3,win10/64) – r2evans