我有一个r脚本,我试图在Ubuntu 18.04上的Rstudio中运行,该脚本正在Windows 10双重引导下具有以下规格:
> sessionInfo()
R version 3.4.4 (2018-03-15)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8
[4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.4 tools_3.4.4
首先,该脚本最初是在Windows中编写的,并且运行良好(我在ubuntu中尝试该脚本的原因是因为我需要在Linux上运行更好的特定程序包)。因此,这似乎意味着linux给R分配的内存比Windows少,这对我来说很不直观。有没有一种方法可以检查为R分配了多少内存并可能增加它,类似于Windows的memory.limit()?还是有人能解释为什么在Windows分区中运行的完全相同的脚本不能在我的Linux上运行的原因?数据集非常大,因此我不确定如何分享有意义的示例,并且无论我是否对为什么此时两者之间都存在差异不感兴趣。如果有帮助的话,下面是我尝试运行的代码,当我尝试更改变量类型时会出错。
path<-getwd()
file.names <- dir(path,pattern =".txt")
#Use fread (a part of the data.table package) within lapply to import files into a list
datalist<-lapply(file.names,
function(x)fread(x,
header=FALSE,
sep=",",
skip=1,
stringsAsFactors=TRUE,
col.names = c("User_ID","Rating","Rating_Date")))
#Use rbindlist to turn the list into a dataframe with the name of the list being the list of the file names
df<-rbindlist(datalist,idcol=file.names)
rm(datalist,file.names,path)
colnames(df)<-c("Movie_ID","User_ID","Rating","Rating_Date")
df$User_ID<-as.factor(as.character(df$User_ID))
df$Movie_ID<-as.factor(as.character(df$Movie_ID))
编辑以解决是否重复:我认为这与该问题有关,但绝对不是重复。主要区别是我既想了解如何在Linux上检查R中的可用内存(该帖子可能会解决),又要了解为什么Windows不在同一脚本上时Linux会耗尽内存。