小编Chr*_*ois的帖子

R中的内存使用情况

在创建大对象并耗尽RAM之后,我将尝试使用在当前环境中删除对象

rm(list=ls())
Run Code Online (Sandbox Code Playgroud)

当我检查我的RAM使用情况时,没有任何改变.即使在呼叫之后gc()什么也没有改变 我只能通过退出来补充我的RAM.

任何人都有建议处理R内的内存密集型对象?

memory-management r

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

在向量中查找多个元素的所有位置

假设我有以下向量:

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?

r vector r-faq

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

计算R中的稀疏成对距离矩阵

我有一个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 distance sparse-matrix knn

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

R语言的调试工具

可能重复:
调试R的一般建议?

在大约9个月前学习R之后,我终于通过print()每隔一行使用语句从调试开始.我现在是一个相当恒定的用户browser()debug().我最近意识到的一些新的工具:traceback(),trace(),和recover().

有人建议何时(以及如何)使用这些?

debugging r

19
推荐指数
0
解决办法
3163
查看次数

开发Sweave文档的建议

我正在寻求简化我的Sweave文档创建,我想听听人们当前的设置.我觉得圣杯是这样的:

  • 在屏幕的一半上编辑Rnw代码
  • 单个键绑定编译Sweave文档并运行pdflatex
  • 在屏幕的另一半上查看PDF; 编译完成后,PDF将刷新并以您正在编辑的文档部分为中心
  • 如果编译有错误,请将PDF替换为编译结果(例如乳胶错误或Sweave错误)

我猜/希望解决方案是Emacs/ESS的一部分,结合Emacs配置文件的一些代码和/或一个漂亮的Makefile.但我真的很想知道每个人创建Sweave和/或Latex文档的首选方法.

emacs latex r ess sweave

18
推荐指数
3
解决办法
2538
查看次数

在R中存储C对象

在R Extensions手册中,我找到了有关从C访问R对象的信息.但是,在我的情况下,我正在使用其他人的C代码,它具有专门的数据结构(称之为Foo).我的目标是让R函数:

  • 初始化一个Foo对象.我不想在R的列表或矩阵中存储其中一个.
  • 更新Foo对象.我不想重新创建Foo对象来执行此操作,而是在适当的位置修改它.此外,此功能可能会返回有关更新是否成功的信息.
  • 从内存中删除Foo对象.

换句话说,我想在R环境中保留一个C对象,使用R函数(由C函数支持)来创建,修改和删除它.

提前感谢任何建议.

c r

18
推荐指数
1
解决办法
1939
查看次数

在R中发生错误后获取变量的状态

假设我刚刚调用了一个函数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看看他们的长度是不同的.(这个例子可能太简单了,但我希望它可以解决这个问题.)

debugging r

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

使用NA默认条目创建(和访问)稀疏矩阵

在了解了在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)

r default-value sparse-matrix na

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

使用Backbone-relational在Backbone中创建嵌套模型

我想使用backbone-relational在我的backbone.js应用程序中使用嵌套模型.

我已经能够按照文档中的示例来创建嵌套对象(例如,一对多关系).但是我不明白如何以更新上层对象的方式绑定较低级别的元素.我认为一个有用的应用程序将是一个非常有用的教程.

所以我的问题是:如何使用以下方式扩展Todos教程backbone-relational:

  • 可以为每个项目添加/删除子项目
  • 双击任何子项编辑它(就像原来的Todo示例一样)
  • 点击某个项目会隐藏/显示其子项目
  • 子项不是单独获取的,而只是Todo项的数组属性

更新:我为这个问题创建了一个jsfiddle.到目前为止,我有:

  • 导入了上面提到的Todo示例
  • 创建了一个TodoSubitem模型和一个TodoSubitemList集合
  • 改变Todo模型以扩展RelationalModel而不是Model与之HasMany相关TodoSubitem
  • subitem-template在html代码中添加了一个

但我仍然不确定如何:

  • 添加输入字段subitems仅在单击Tododiv 时显示
  • 将子项数据作为Todo对象的属性,但仍然TodoSubitemView将DOM元素绑定到它们(例如<li>标签).

javascript backbone.js backbone-relational

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

在文本中间自动完成(例如Google Plus)

有很多选择可以做自动完成.他们中的大多数似乎都在输入的前几个字母上工作.

在Google Plus中,自动填充选项在输入后很快就会下降@,无论它在表单字段中出现在何处,并使用紧随其后的字母@来指导自动填充.(它看起来也很不错!)

有没有人共享代码来做这种事情?

有没有人有任何指针试图实现这个玩具版本(例如在jQuery中)?

jquery autocomplete jquery-ui-autocomplete google-plus

11
推荐指数
1
解决办法
5053
查看次数