私はt
と呼ばれる57247行の27変数のデータフレームを持っています。データフレームは16 MBの.tsvファイルからインポートされたので、それほど巨大ではありません。これらの列の1つは、approved_date
です。この要素には、MySQLのタイムスタンプ文字列が含まれています。例は"2007-10-08 06:38:18"
です。Rサプリーとas.POSIXctメモリ不足
私はこの文字列を整数のPOSIXctに変換する関数を持っています。私は列全体でこれをやりたい
convert_datetime <- function(dt) as.POSIXct(dt, tz="Asia/Hong_Kong")
最初の10行で試してみると、すべて正常に動作します。タイムスタンプはintに変換されます。しかし
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を使用する。
あなたはおそらくここで起こって何かを持っています。私は100k行のdata.frameで 'sapply'コード(Hong Ooiは非効率だと思いますが、私は同意します)を実行していますが、確かに遅い*ですが、約200MBのRAMが働いています(taskmgrに従って)。 (R-3.3.3、win10/64) – r2evans