Rで奇妙な問題が発生しています。
私は大きな data.table dataTs1 を持っています:
Classes ‘data.table’ and 'data.frame': 419172 obs. of 5 variables:
$ TimeStamp: chr "01MAR13:07:15:00" "01MAR13:07:16:00" "01MAR13:07:18:00" ...
$ col1 : chr "ALL1" "ALL1" "ALL1" "ALL1" ...
$ col2 : int NA NA NA NA NA NA NA NA NA NA ...
$ col3 : int 4 4 4 4 4 4 4 4 4 4 ...
$ col4 : int 621 810 4 4 8 1 3 1 1 1 ...
fread
関数を使用してこのテーブルをロードしました。
メモリ割り当ては問題ないようです。
> memory.size(max=TRUE)
[1] 82.94
最初の行のクラスを POSIX に変更しようとしたので、次のように書きました。
dataTs1$TimeStamp <- strptime(dataTs1$TimeStamp,"%d%b%y:%H:%M:%S")
そして、この行で16Gのメモリ制限に達します...しかし、私が書くとき:
test <- 1:length(dataTs1$TimeStamp)
dataTs1$TimeStamp <- test
メモリの過負荷なしで完全に機能します。
私はRでかなり新しいので、ここで何が間違っているのかを理解するのを手伝ってくれたらありがたいです.
どうも
編集 :
実際、メモリの過負荷が発生していないときに、奇妙な警告が表示されることがあります。
>dataTs1[,TimeStamp:=strptime(TimeStamp,"%d%b%y:%H:%M:%S")]
Warning messages:
1: In `[<-.data.table`(x, j = name, value = value) :
Supplied 9 items to be assigned to 419172 items of column 'TimeStamp' (recycled leaving remainder of 6 items).
2: In `[<-.data.table`(x, j = name, value = value) :
Coerced 'list' RHS to 'character' to match the column's type. Either change the target column to 'list' first (by creating a new 'list' vector length 419172 (nrows of entire table) and assign that; i.e. 'replace' column), or coerce RHS to 'character' (e.g. 1L, NA_[real|integer]_, as.*, etc) to make your intent clear and for speed. Or, set the column type correctly up front when you create the table and stick to it, please.
> str(dataTs1)
Classes ‘data.table’ and 'data.frame': 419172 obs. of 5 variables:
$ TimeStamp: chr "c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N"| __truncated__ "c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N"| __truncated__ "c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N"| __truncated__ "c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N"| __truncated__ ...
$ V6FCDSB : chr "ALL1" "ALL1" "ALL1" "ALL1" ...
$ V6FCDTD : int NA NA NA NA NA NA NA NA NA NA ...
$ _TYPE_ : int 4 4 4 4 4 4 4 4 4 4 ...
$ N : int 621 810 4 4 8 1 3 1 1 1 ...
- attr(*, ".internal.selfref")=<externalptr>