小编Ben*_*ert的帖子

使用二进制搜索按范围子集data.table

您如何使用数字范围对data.table进行子集化,以便使用二进制搜索?

例如:

require(data.table)
set.seed(1)

x<-runif(10000000,min=0,max=10)
y<-runif(10000000,min=0,max=10)

DF<-data.frame(x,y)
DT<-data.table(x,y)

system.time(DFsub<-DF[DF$x>5 & DF$y<7,])
# user  system elapsed 
# 1.529   0.250   1.821 

#subset DT
system.time(DTsub<-DT[x>5 & y<7])
# user  system elapsed 
#0.716   0.119   0.841 
Run Code Online (Sandbox Code Playgroud)

以上不使用键(矢量扫描),加速不是那么戏剧化.使用二进制搜索对data.table的数值范围进行子集化的语法是什么?我在文档中找不到一个好例子; 如果有人可以使用上面的玩具数据提供一个例子,将会有所帮助.

编辑:这个问题是类似的,但仍然没有演示如何按范围子集: data.table:矢量扫描v二进制搜索与数字列 - 超慢setkey

r data.table

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

dplyr在使用汇总时只返回一行

我正在尝试给dplyr的连锁经营者.

使用简单的例子:

group_by(mtcars, cyl) %>%
summarise(mean(disp), mean(hp))
Run Code Online (Sandbox Code Playgroud)

我得到了结果:

  # mean(disp) mean(hp)
  #1   230.7219 146.6875
Run Code Online (Sandbox Code Playgroud)

由于某些原因,dplyr不进行分组,只是总结整个向量.我错过了什么?

r dplyr

8
推荐指数
1
解决办法
6057
查看次数

如何减少从插入符传递给RF的默认ntree = 500参数?

我相信"rf"(randomForest)方法caret将默认树的数量设置为500.不幸的是,这会导致时间复杂度对于较大的数据集失去控制.有没有快速的方法来减少树的数量而不创建自定义方法?我知道rf唯一的可调参数是mtry.

只是为了澄清:我不打算调整树木的数量.我只想将它修复为较低的值,以便我可以在合理的时间内运行rf.

performance r parameter-passing random-forest r-caret

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

"+"如何在ggplot2中运行?

这是一个看似简单的问题,我要求的是为了更好地理解域特定语言在R中是如何工作的.

通用函数"+"如何允许构建分层​​图ggplot2

显然ggplot2在非常高的抽象层次上工作.有人可以展示一个简单的例子,展示"+"如何在引擎盖下工作ggplot2

r ggplot2

4
推荐指数
1
解决办法
148
查看次数

R中的Bootstrap采样大数据(太大而无法容纳在RAM中)

是否可以从.Rdata对象或存储在磁盘上的任何其他大型数据对象中绘制引导样本?我目前从非常大的数据中采样的方法是构建一个本地MySQL数据库,然后使用SQL将随机样本绘制到R中.不幸的是,MySQL中的采样和排序根本没有效率.我想知道是否有人为此用例设计了更好的解决方案.

要了解我当前的解决方案,请参阅MySQL中的采样问题: 来自Sql数据库的简单随机样本

r bigdata sampling

0
推荐指数
1
解决办法
816
查看次数