在创建大对象并耗尽RAM之后,我将尝试使用在当前环境中删除对象
rm(list=ls())
Run Code Online (Sandbox Code Playgroud)
当我检查我的RAM使用情况时,没有任何改变.即使在呼叫之后gc()什么也没有改变 我只能通过退出来补充我的RAM.
任何人都有建议处理R内的内存密集型对象?
假设我有以下向量:
x <- c(8, 6, 9, 9, 7, 3, 2, 5, 5, 1, 6, 8, 5, 2, 9, 3, 5, 10, 8, 2)
Run Code Online (Sandbox Code Playgroud)
如何找到哪些元素是8或9?
我有一个NxM矩阵,我想计算点NxN之间的欧几里德距离矩阵M.在我的问题中,N大约是100,000.由于我计划将此矩阵用于k近邻算法,我只需要保持k最小距离,因此得到的NxN矩阵非常稀疏.这与dist()例如导致密集矩阵(并且可能存在我的尺寸的存储问题N)的情况形成对比.
我到目前为止发现的kNN包(knnflex,kknn,等)均出现使用密集矩阵.此外,该Matrix包装不提供成对距离功能.
更接近我的目标,我发现该spam软件包具有一个nearest.dist()功能,允许人们只考虑小于某个阈值的距离,delta.然而,在我的情况下,特定值delta可能会产生太多的距离(因此我必须NxN密集地存储矩阵)或距离太远(因此我不能使用kNN).
我之前已经看到过尝试使用包执行k-means聚类的讨论bigmemory/biganalytics,但在这种情况下我似乎不能利用这些方法.
有人知道在R中以稀疏方式计算距离矩阵的函数/实现吗?我的(可怕的)备份计划是有两个for循环并将结果保存在一个Matrix对象中.
可能重复:
调试R的一般建议?
在大约9个月前学习R之后,我终于通过print()每隔一行使用语句从调试开始.我现在是一个相当恒定的用户browser()和debug().我最近意识到的一些新的工具:traceback(),trace(),和recover().
有人建议何时(以及如何)使用这些?
我正在寻求简化我的Sweave文档创建,我想听听人们当前的设置.我觉得圣杯是这样的:
我猜/希望解决方案是Emacs/ESS的一部分,结合Emacs配置文件的一些代码和/或一个漂亮的Makefile.但我真的很想知道每个人创建Sweave和/或Latex文档的首选方法.
在R Extensions手册中,我找到了有关从C访问R对象的信息.但是,在我的情况下,我正在使用其他人的C代码,它具有专门的数据结构(称之为Foo).我的目标是让R函数:
换句话说,我想在R环境中保留一个C对象,使用R函数(由C函数支持)来创建,修改和删除它.
提前感谢任何建议.
假设我刚刚调用了一个函数f,并且在函数的某处发生了错误.我只是希望能够在错误发生之前检查出不同变量的值.
假设我的直觉告诉我这是一个小错误,所以我懒得使用debug(f)而且懒得插入browser()功能的部分我认为出错了.而且我懒得开始print()发表声明.
这是一个例子:
x <- 1:5
y <- x + rnorm(length(x),0,1)
f <- function(x,y) {
y <- c(y,1)
lm(y~x)
}
Run Code Online (Sandbox Code Playgroud)
调用f(x,y)我们得到以下错误:
Error in model.frame.default(formula = y ~ x, drop.unused.levels = TRUE) :
variable lengths differ (found for 'x')
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我想要在lm()调用之前获取环境的状态; 这样我可以打电话x,y看看他们的长度是不同的.(这个例子可能太简单了,但我希望它可以解决这个问题.)
在了解了在R中使用稀疏矩阵的选项之后,我想使用Matrix包从以下数据框创建稀疏矩阵,并使所有其他元素都是NA.
s r d
1 1089 3772 1
2 1109 190 1
3 1109 2460 1
4 1109 3071 2
5 1109 3618 1
6 1109 38 7
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用以下内容创建一个稀疏矩阵,像往常一样访问元素:
> library(Matrix)
> Y <- sparseMatrix(s,r,x=d)
> Y[1089,3772]
[1] 1
> Y[1,1]
[1] 0
Run Code Online (Sandbox Code Playgroud)
但如果我想将默认值设为NA,我尝试了以下内容:
M <- Matrix(NA,max(s),max(r),sparse=TRUE)
for (i in 1:nrow(X))
M[s[i],r[i]] <- d[i]
Run Code Online (Sandbox Code Playgroud)
并得到了这个错误
Error in checkSlotAssignment(object, name, value) :
assignment of an object of class "numeric" is not valid for …Run Code Online (Sandbox Code Playgroud) 我想使用backbone-relational在我的backbone.js应用程序中使用嵌套模型.
我已经能够按照文档中的示例来创建嵌套对象(例如,一对多关系).但是我不明白如何以更新上层对象的方式绑定较低级别的元素.我认为一个有用的应用程序将是一个非常有用的教程.
所以我的问题是:如何使用以下方式扩展Todos教程backbone-relational:
更新:我为这个问题创建了一个jsfiddle.到目前为止,我有:
TodoSubitem模型和一个TodoSubitemList集合Todo模型以扩展RelationalModel而不是Model与之HasMany相关TodoSubitemsubitem-template在html代码中添加了一个但我仍然不确定如何:
subitems仅在单击Tododiv 时显示Todo对象的属性,但仍然TodoSubitemView将DOM元素绑定到它们(例如<li>标签).有很多选择可以做自动完成.他们中的大多数似乎都在输入的前几个字母上工作.
在Google Plus中,自动填充选项在输入后很快就会下降@,无论它在表单字段中出现在何处,并使用紧随其后的字母@来指导自动填充.(它看起来也很不错!)
有没有人共享代码来做这种事情?
有没有人有任何指针试图实现这个玩具版本(例如在jQuery中)?
r ×8
debugging ×2
autocomplete ×1
backbone.js ×1
c ×1
distance ×1
emacs ×1
ess ×1
google-plus ×1
javascript ×1
jquery ×1
knn ×1
latex ×1
na ×1
r-faq ×1
sweave ×1
vector ×1