我想根据另一个表中的覆盖更正一个表.当dt_override具有该单位且日期范围与dt_current重叠时,我想更改dt_current中的值.
dt_current <- data.table( unit = c(rep("a",10), rep("b", 10)),
date = seq(as.Date("2015-1-1"), by = "day", length.out = 10),
num = 1:10, key = "unit")
dt_override <- data.table( unit = c("a", "a", "b", "zed" ), start_date = as.Date(c("2015-01-03", "1492-12-25", "2015-01-02", "2015-01-11")),
end_date = as.Date(c("2015-01-05", "1492-12-26", "2015-01-04", "2015-01-14")),
value = NA, key = "unit")
Run Code Online (Sandbox Code Playgroud)
在加入两个数据表时,我似乎应该使用某种形式的.EACHI,编码如下所示,认为它不起作用或当然.
dt_current[dt_override,
num := if(i.start_date <= date & i.end_date >= date) i.value,
by = .EACHI]
Run Code Online (Sandbox Code Playgroud) 看着购买一对Xeon Phi 5110P,但试图估计我需要改变多少代码或其他需要的软件.
目前我利用好R对多核心的Windows机器(24个内核)使用foreach包,通过它其他的包forecast,glmnet等做我的并行处理.
有一个Xeon Phi我明白我想编译R
https://software.intel.com/en-us/articles/running-r-with-support-for-intel-xeon-phi-coprocessors我明白这可能是完成了Parallel Studio XE的跟踪版本.
那么我是否需要编辑R的Makeconf文件,添加C/C++标志和Phi?在Parallel Studio上的跟踪到期之前编译所有需要的包?或者我是否不需要编辑Makeconf以获得foreachPhi 的好处?
似乎其中一些将在编译R后自动处理,并由Math Kernel Library(MKL)完成卸载,但我不完全确定这一点.
一些相关的问题:英特尔至强融核是否可以在没有昂贵的英特尔编译器的情况下使用?
此外revolutionanalytics.com似乎有一些相关的博客文章,但不是完全确凿的对我来说:http://blog.revolutionanalytics.com/2015/05/behold-the-power-of-parallel.html