相关疑难解决方法(0)

kmeans:快速转换阶段步骤超出最大值

我在R中使用标准stats包在636,688行和7列的数据集上运行k-means聚类:kmeans(dataset, centers = 100, nstart = 25, iter.max = 20).

我收到以下错误:Quick-TRANSfer stage steps exceeded maximum (= 31834400),虽然人们可以在查看代码http://svn.r-project.org/R/trunk/src/library/stats/R/kmeans.R -我不确定的是什么出错了.我认为我的问题与我的数据集的大小有关,但如果有人能够一劳永逸地澄清我可以采取哪些措施来缓解这个问题,我将不胜感激.

r cluster-analysis k-means

31
推荐指数
3
解决办法
2万
查看次数

如何在RStudio(桌面版)中设置内存限制?

我知道,有已经被一个类似的问题在这里,但得到的答复是外的日期.我在互联网上找到的信息是指RStudio Server而不是Desktop.

我在Windows 7 x64 PC上的资源有限.我已经设置了环境变量R_MAX_MEM_SIZE,这被RGui接受(如输入时所见memory_limit()).但是,RStudio(版本0.98.507)忽略了这个设置,仍然使用我的计算机的整个内存,这有时会导致整个系统崩溃.在RStudio Desktop中运行R时,如何限制R使用的内存量?

r rstudio

21
推荐指数
2
解决办法
1万
查看次数

R阅读巨大的csv

我有一个巨大的csv文件.它的大小约为9 GB.我有16 gb的ram.我按照页面上的建议进行操作并在下面实现.

If you get the error that R cannot allocate a vector of length x, close out of R and add the following line to the ``Target'' field: 
--max-vsize=500M 
Run Code Online (Sandbox Code Playgroud)

我仍然收到下面的错误和警告.我应该如何将9 gb的文件读入我的R?我有R 64位3.3.1,我在rstudio 0.99.903中运行命令.我有Windows Server 2012 r2标准,64位操作系统.

> memory.limit()
[1] 16383
> answer=read.csv("C:/Users/a-vs/results_20160291.csv")
Error: cannot allocate vector of size 500.0 Mb
In addition: There were 12 warnings (use warnings() to see them)
> warnings()
Warning messages:
1: In scan(file = file, what = what, sep = sep, …
Run Code Online (Sandbox Code Playgroud)

windows csv ram r

17
推荐指数
3
解决办法
7374
查看次数

在Linux下限制R中的内存使用量

我们在Linux集群环境中运行R. 当用户无意中使用R进程占用所有内存时,头节点有几个挂起.有没有办法限制Linux下的R内存使用?我宁愿不建议全球性的ulimits,但这可能是前进的唯一途径.

linux memory-management r

12
推荐指数
2
解决办法
1万
查看次数

R内存管理 - 增加内存消耗

我的代码如下所示(与原始版本相比,它有点简化版本,但它仍然反映了问题).

require(VGAM)

Median.sum  = vector(mode="numeric", length=75) 
AA.sum      = vector(mode="numeric", length=75)                                                    
BB.sum      = vector(mode="numeric", length=75)                   
Median      = array(0, dim=c(75 ,3)) 
AA          = array(0, dim=c(75 ,3))                                                    
BB          = array(0, dim=c(75 ,3))                              

y.sum     = vector(mode="numeric", length=100000)
y         = array(0, dim=c(100000,3))
b.size    = vector(mode="numeric", length=3) 
c.size    = vector(mode="numeric", length=3) 


for (h in 1:40)
{
  for (j in 1:75)
  {  
    for (i in 1:100000)
    {
      y.sum[i] = 0

      for (f in 1:3)
      {
        b.size[f] = rbinom(1, 30, 0.9)
        c.size[f] = 30 - rbinom(1, 30, 0.9) …
Run Code Online (Sandbox Code Playgroud)

memory-management r nested-loops

7
推荐指数
1
解决办法
1209
查看次数

R: stack overflow error with randomForest on large dataset (48-512 GB RAM)

我正在R中尝试在一个广泛的遗传数据集(662 x 35350)上进行R randomForest分析.除结果外的所有变量都是数字,其中99%是二进制0/1.我对R randomForest()非常熟悉,但之前只使用过5000-10000个变量的数据集.下一个计划的分析阶段将是一个包含数百万变量的异常大的数据集,因此我有动力找到解决这个问题的方法.

我的理解是R randomForest对变量的数量没有固有的限制,我知道我已经读过10万个变量数的已发表的工作.当我尝试对完整数据集进行分析时(设置ntree = 100,我得到:"错误:protect():保护堆栈溢出"

无论数据集是数据框(如最初提供的)还是将其转换为矩阵,都是如此.当我将运行提交到集群进行并行处理时,我发现我的所有内核在执行代码时都在运行.我也看到,在任何情况下,我的RAM使用率都接近机器的限制(48 GB).在执行尝试期间,它最多会占据大约16%的RAM.(我在办公室的512 GB RAM机器上也遇到了同样的问题,它的使用率从未超过5%).

我已经尝试了在线发现的几种解决方案,包括之前的stackoverflow帖子中的一个(增加(或减少)R进程可用的内存).我尝试了BobbyShaftoe在2009年提供的说明(在快捷方式选项卡的属性中添加了--max-mem-size = 49000M和--max-vsize = 49000M),但这阻止了R正常打开.我也尝试在命令行中运行这些命令,但这些命令生成:' - max-ppsize'/' - max-vsize = 5000M"不被识别为内部或外部命令,可操作程序或批处理文件.

我还阅读了这篇文章中提出的建议:如何提高randomForest的性能?.在完成至少一次具有完整功能集的运行之前,我无法减少功能的数量.(另外,我不确定问题是RAM本身.)

我在Windows 7上运行Revolution R 7.2(64位).我的内存限制设置为49807 Mb,但我不确定memory.limit是否特定地解决了允许的保护堆栈大小.

将数据集分解为较小的变量块(确实解决了堆栈溢出问题)并不能解决分析问题.是否有关于可能允许对完整数据集进行分析的R设置的建议?

##########################################
# input DF
##########################################
object.size(inputDF) # 191083664 bytes (as matrix, size=189391088 bytes, not much smaller)
dim(inputDF) # 662 x 35350 

##########################################
#Load necessary packages into R's memory
##########################################
require(iterators)
require(foreach)
require(parallel)
require(doParallel)
require(randomForest)

###########################################
# Get the number of available logical cores
###########################################
cores …
Run Code Online (Sandbox Code Playgroud)

stack-overflow r random-forest

6
推荐指数
1
解决办法
1216
查看次数

tm包错误"由于向量太大,无法将DocumentTermMatrix转换为普通矩阵"

我创建了一个DocumentTermMatrix,其中包含1859个文档(行)和25722(列).为了对该矩阵进行进一步的计算,我需要将其转换为规则矩阵.我想使用该as.matrix()命令.但是,它返回以下错误:无法分配大小为364.8 MB的向量.

> corp
A corpus with 1859 text documents
> mat<-DocumentTermMatrix(corp)
> dim(mat)
[1]  1859 25722
> is(mat)
[1] "DocumentTermMatrix"
> mat2<-as.matrix(mat)
Fehler: kann Vektor der Größe 364.8 MB nicht allozieren # cannot allocate vector of size 364.8 MB
> object.size(mat)
5502000 bytes
Run Code Online (Sandbox Code Playgroud)

由于某种原因,只要将对象转换为常规矩阵,对象的大小就会显着增加.我怎么能避免这个?

或者是否有另一种方法在DocumentTermMatrix上执行常规矩阵运算?

r tm

5
推荐指数
2
解决办法
5485
查看次数

增加 R for Mac 的内存限制

我一直在查看有关如何增加 R 内存限制的在线解决方案,但这些解决方案似乎只适用于windowslinux 系统

我使用的是 Mac Mojave 版本 10.14.5、8GB 内存、2.3 GHz Intel Core i5。我的 R 工作室是 64 位,版本 1.1.453

这是来自 gc 函数的报告:

> gc()
           used  (Mb) gc trigger   (Mb) limit (Mb)  max used   (Mb)
Ncells  6453699 344.7   11897884  635.5         NA  11897884  635.5
Vcells 44221701 337.4  179064532 1366.2       7168 219267441 1672.9
Run Code Online (Sandbox Code Playgroud)

我想知道为什么 Ncells 和 Vcells 的限制如此之低——635.5Mb 和 1672.9Mb?这是否意味着 R 当前仅使用了该数量的内存?这是我的怀疑,所以我想增加它的限制。

我想要做的是:将一个具有 227,795 行的数据框与另一个具有相同行数但具有不同列的数据框合并。这给了我一个错误:

Error: vector memory exhausted (limit reached?) 
Run Code Online (Sandbox Code Playgroud)

当我尝试在 227,796 组坐标之间构建距离的大矩阵时,也会发生此错误。

有没有人有任何解决方案来增加 R 在 mac 中的内存限制?如果有 …

memory macos r

5
推荐指数
0
解决办法
7061
查看次数