在Ubuntu上增加R中的可用内存

时间:2018-07-06 22:57:46

标签: r linux ubuntu memory memory-management

我有一个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会耗尽内存。

0 个答案:

没有答案