我正在尝试通过一个通用ID合并两个相当大的数据集-但并不荒谬(360,000X4、57,000X4)-数据集。我尝试了常规的merge()、merge.data.table()和sqldf()。每次我一直用完内存(cannotallocatevectorofsize...)。有什么解决办法吗?还是R是一个糟糕的数据合并工具?head()如下(我正在尝试合并STUDENT.NAME):ID10STUDENT.NAMEFATHER.NAMEMOTHER.NAME11DEEKSHITHJJAYANNASWARNA24MANIKANTHADDEVARAJMANJULA35NAGESHTTHIM
相关背景资料我已经构建了一个可以通过配置文件进行自定义的小软件。配置文件被解析并翻译成嵌套的环境结构(例如.HIVE$db=anenvironment,.HIVE$db$user="Horst",.HIVE$db$pw="mypassword",.HIVE$regex$date=一些日期的正则表达式等)我已经构建了可以处理这些嵌套环境的例程(例如,查找值“db/user”或“regex/date”,更改它等)。问题是配置文件的初始解析需要很长时间,并且会产生相当大的对象(实际上是三到四个,在4到16MB之间)。所以我想“没问题,让我们通过将对象保存到.Rdata文件来缓存它们”。这行得
相关背景资料我已经构建了一个可以通过配置文件进行自定义的小软件。配置文件被解析并翻译成嵌套的环境结构(例如.HIVE$db=anenvironment,.HIVE$db$user="Horst",.HIVE$db$pw="mypassword",.HIVE$regex$date=一些日期的正则表达式等)我已经构建了可以处理这些嵌套环境的例程(例如,查找值“db/user”或“regex/date”,更改它等)。问题是配置文件的初始解析需要很长时间,并且会产生相当大的对象(实际上是三到四个,在4到16MB之间)。所以我想“没问题,让我们通过将对象保存到.Rdata文件来缓存它们”。这行得
已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎与helpcenter中定义的范围内的编程无关。.关闭8年前。Improvethisquestion我在这台机器上有32GB的内存,但我可以比任何人更快地杀死R;)示例这里的目标是使用利用data.table效率的函数来实现两个data.table的rbind()。输入:rm(list=ls())gc()输出:used(Mb)gctrigger(Mb)maxused(Mb)Ncells160498785.82403845128.42251281120.3Vcells301940523.15
已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎与helpcenter中定义的范围内的编程无关。.关闭8年前。Improvethisquestion我在这台机器上有32GB的内存,但我可以比任何人更快地杀死R;)示例这里的目标是使用利用data.table效率的函数来实现两个data.table的rbind()。输入:rm(list=ls())gc()输出:used(Mb)gctrigger(Mb)maxused(Mb)Ncells160498785.82403845128.42251281120.3Vcells301940523.15
我正在阅读Hadley的高级R编程,当它讨论字符的内存大小时,它说:Rhasaglobalstringpool.Thismeansthateachuniquestringisonlystoredinoneplace,andthereforecharactervectorstakeuplessmemorythanyoumightexpect.本书给出的例子是这样的:library(pryr)object_size("banana")#>96Bobject_size(rep("banana",10))#>216B本节的一个练习是比较这两个字符向量:vec现在,既然文章指出R有一个全局字符串
我正在阅读Hadley的高级R编程,当它讨论字符的内存大小时,它说:Rhasaglobalstringpool.Thismeansthateachuniquestringisonlystoredinoneplace,andthereforecharactervectorstakeuplessmemorythanyoumightexpect.本书给出的例子是这样的:library(pryr)object_size("banana")#>96Bobject_size(rep("banana",10))#>216B本节的一个练习是比较这两个字符向量:vec现在,既然文章指出R有一个全局字符串
我正在尝试减少R包的内存占用,并注意到我似乎无法抑制的行为。请看下面的例子:xa和b仅相差约4kb,但垃圾收集器报告情况1和2的峰值内存使用量相差约30mb。c使用的内存比a和c都少,我想在运行时不会没有相当大的损失。峰值内存分配似乎与调用apply时考虑的列数正相关,但为什么呢?对apply的调用是否会导致内存分配超出迭代范围?我本来希望在每次迭代结束之前由gc释放(或标记为未使用的)任何内部临时对象。这种行为可以在data.frame上使用lapply重现,也可以用不同的函数代替quantile。我的印象是我忽略了R中内存使用行为的一个非常基本的方面,但我仍然无法理解它。最终,我的
我正在尝试减少R包的内存占用,并注意到我似乎无法抑制的行为。请看下面的例子:xa和b仅相差约4kb,但垃圾收集器报告情况1和2的峰值内存使用量相差约30mb。c使用的内存比a和c都少,我想在运行时不会没有相当大的损失。峰值内存分配似乎与调用apply时考虑的列数正相关,但为什么呢?对apply的调用是否会导致内存分配超出迭代范围?我本来希望在每次迭代结束之前由gc释放(或标记为未使用的)任何内部临时对象。这种行为可以在data.frame上使用lapply重现,也可以用不同的函数代替quantile。我的印象是我忽略了R中内存使用行为的一个非常基本的方面,但我仍然无法理解它。最终,我的
我有一个包含50000个字符串向量的列表,由6000个唯一字符串的各种组合组成。目标:我想将它们转换为“相对频率”(table(x)/length(x))并将它们存储在稀疏矩阵。低内存消耗比速度更重要。目前内存是瓶颈。(即使源数据大约有50mb并且目标格式的数据有大约10mb-->转换似乎效率低下,...)生成样本数据dims可能的尝试:1)sapply()简化为稀疏矩阵?library(Matrix)sparseRow问题:我的瓶颈似乎是sparseRows因为行没有直接组合到稀疏矩阵。(如果我在完整示例上运行上面的代码,我会得到一个Error:cannotallocatevecto