Sea*_*ean 5 windows r data.table
参考Crashing R在特定数据集上调用`write.table`这个问题时,我可以通过在一个会话中保存一个大的数据,在Windows-64bit上几乎 "可靠地"崩溃64位.当我说差不多时,一旦它发生(当向IT中的一个人展示崩溃时!)我得到了消息R --vanilladata.table
Error in .External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol, :
'getCharCE' must be called on a CHARSXP
Run Code Online (Sandbox Code Playgroud)
在上述问题中引用.
要崩溃RI只需要保存(DT,"datatablefile.RData")
然后在另一个可能的R会议中--vanilla,我只是说......
load("datatablefile.RData")
write.csv(DT, file='datatablefile.csv')
Run Code Online (Sandbox Code Playgroud)
然后会在一两分钟后崩溃.请特别注意,如果我说它不会崩溃
load("datatablefile.RData")
library(data.table)
write.csv(DT, file='datatablefile.csv')
Run Code Online (Sandbox Code Playgroud)
当我说出类似的话
library(data.table)
N <- 1000
DT <- data.table(id=1:N, name=sample(letters, N, replace=TRUE))
save(DT, file='dttest.RData')
Run Code Online (Sandbox Code Playgroud)
然后在另一个会话中
load('dttest.RData')
write.csv(DT, 'dttest.csv')
Run Code Online (Sandbox Code Playgroud)
我没有崩溃......
有可能与之相关的建议rbindlist(),所以
library(data.table)
N <- 10000000
DT1 <- data.table(id=1:N, name=sample(letters, N, replace=TRUE))
DT2 <- data.table(id=1:N, name=sample(letters, N, replace=TRUE))
DT <- rbindlist(list(DT1, DT2))
save(DT, file='dttest.RData')
Run Code Online (Sandbox Code Playgroud)
请注意,我已经尝试过这个N <- 10000000,在这台32GB的机器上,它仍然工作正常...
有人建议可能是因为这些因素?
library(data.table)
N <- 1000
DT1 <- data.table(id=1:N, name=sample(letters, N, replace=TRUE),
code=as.factor(sample(letters[1:5], N, replace=TRUE)))
DT2 <- data.table(id=1:N, name=sample(letters, N, replace=TRUE),
code=as.factor(sample(letters[1:5], N, replace=TRUE)))
DT <- rbindlist(list(DT1, DT2))
save(DT, file='dttest.RData')
str(DT)
Classes ‘data.table’ and 'data.frame': 20000000 obs. of 3 variables:
$ id : int 1 2 3 4 5 6 7 8 9 10 ...
$ name: chr "v" "u" "t" "z" ...
$ code: Factor w/ 5 levels "a","b","c","d",..: 2 5 4 2 2 1 2 3 2 4 ...
- attr(*, ".internal.selfref")=<externalptr>
Run Code Online (Sandbox Code Playgroud)
然后在另一个会话中
> load('dttest.RData')
> tables()
Error: could not find function "tables"
> str(DT)
Classes ‘data.table’ and 'data.frame': 20000000 obs. of 3 variables:
$ id : int 1 2 3 4 5 6 7 8 9 10 ...
$ name: chr "v" "u" "t" "z" ...
$ code: Factor w/ 5 levels "a","b","c","d",..: 2 5 4 2 2 1 2 3 2 4 ...
- attr(*, ".internal.selfref")=<externalptr>
> write.csv(DT, 'dttest.csv')
Run Code Online (Sandbox Code Playgroud)
然后工作得很好......
当我写一个data.table可以包含chr,num,Date但是当它包含因子时看起来失败的大小时似乎很好......
关于如何创建一个如何复制这个的可靠演示的任何建议?表格本身的内容是高度机密的.
更新 我刚尝试过
setkey(DT,id)
Run Code Online (Sandbox Code Playgroud)
但它并没有导致崩溃.
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |