我想会有更多的人对这个主题感兴趣.我有一些特定的任务要以最有效的方式完成.我的基础数据是: - 买入和卖出信号的时间指数 - 在时间指示的诊断上我有最近的买卖对之间的ROC(变化率):
r <- array(data = NA,
dim = c(5, 5),
dimnames = list(buy_idx = c(1,5,9,12,16),
sell_idx = c(3,7,10,14,19)))
diag(r) <- c(1.04,0.97,1.07,1.21,1.1)
Run Code Online (Sandbox Code Playgroud)
任务是在每个可能的窗口(买卖对)上生成移动复合ROC,以及我目前正在解决我的任务的方式:
for(i in 2:5){
r[1:(i-1),i] <- r[1:(i-1),i-1] * r[i,i]
}
Run Code Online (Sandbox Code Playgroud)
直到我没有在上面的某个地方循环,我的解决方案的时间是非常可接受的.有没有办法将此循环更改为矢量化解决方案?是否有任何良好的文档化教程来学习R中的矢量化思维类型? - 它比一次性解决方案更有价值!
编辑20130709:
下一个任务与先前的任务/示例高度相关.对每笔交易应用税额(税率为%值).当前解决方案
diag(r[,]) <- diag(r[,]) * ((1-(tax/100))^2)
for(i in 2:dim(r)[2]){
r[1:(i-1),i] <- r[1:(i-1),i] * ((1-(tax/100))^(2*(i:2)))
}
Run Code Online (Sandbox Code Playgroud)
你知道更有效的方法吗?或者更正确,如果这不能解决所有问题.
使用roxygen2的自动记录功能,虽然它很棒且有用,但它对roxygen2包版本的每次更改都很烦人.它通过在每个文件中放入roxygen2版本来更新我的所有文档文件.见下文.
% Generated by roxygen2 (4.1.1): do not edit by hand
% Please edit documentation in R/src.R
Run Code Online (Sandbox Code Playgroud)
这些更改显然不会影响代码/包,但会通过在源版本控制过程中添加噪声来影响源控件版本控制.
可以在某个地方关掉吗?
我有N台客户端机器.我想用BRIN索引的不同分区加载每台机器.
这需要:
主要目标是在将单个表从postgres加载到分布式客户端计算机时保持性能提升,在客户端之间保持相等的行数 - 如果行计数不按计算机计数除,则接近相等.
我现在可以通过维护新列来实现它,该列将我的表块分成等于客户端机器数量(或动态使用row_number() over (order by datetime) % N)的桶数.这样,它在时序和内存方面效率不高,并且BRIN索引看起来像一个很好的功能,可以加速这种用例.
3台客户端机器的最小可重现示例:
CREATE TABLE bigtable (datetime TIMESTAMPTZ, value TEXT);
INSERT INTO bigtable VALUES ('2015-12-01 00:00:00+00'::TIMESTAMPTZ, 'txt1');
INSERT INTO bigtable VALUES ('2015-12-01 05:00:00+00'::TIMESTAMPTZ, 'txt2');
INSERT INTO bigtable VALUES ('2015-12-02 02:00:00+00'::TIMESTAMPTZ, 'txt3');
INSERT INTO bigtable VALUES ('2015-12-02 03:00:00+00'::TIMESTAMPTZ, 'txt4');
INSERT INTO bigtable VALUES ('2015-12-02 05:00:00+00'::TIMESTAMPTZ, 'txt5');
INSERT INTO bigtable VALUES ('2015-12-02 16:00:00+00'::TIMESTAMPTZ, 'txt6');
INSERT INTO bigtable VALUES …Run Code Online (Sandbox Code Playgroud) 给出以下星型模式表.
# geog_abb time_date amount value
#1: AL 2013-03-26 55.57 9113.3898
#2: CO 2011-06-28 19.25 9846.6468
#3: MI 2012-05-15 94.87 4762.5398
#4: SC 2013-01-22 29.84 649.7681
#5: ND 2014-12-03 37.05 6419.0224
Run Code Online (Sandbox Code Playgroud)
# geog_abb geog_name geog_division_name geog_region_name
#1: AK Alaska Pacific West
#2: AL Alabama East South Central South
#3: AR Arkansas West South Central South
#4: AZ Arizona Mountain West
#5: CA California Pacific West
Run Code Online (Sandbox Code Playgroud)
# time_date time_weekday time_week time_month time_month_name time_quarter time_quarter_name time_year
#1: 2010-01-01 Friday …Run Code Online (Sandbox Code Playgroud) data-modeling data-warehouse star-schema database-normalization data.cube
是否可以在使用R Markdown创建的.html文件中隐藏文本块?应隐藏文本元素,直到用户优先悬停在文本上(或单击按钮).要隐藏的元素不涉及代码块.目前我在<p> </ p>中包含了文字
建议通过在每行前面加上'>!来隐藏文本块,但R Studio不会识别这种'降价'方法.它只返回一个以'!'开头的文本块.我更喜欢这种简单的"悬停"方法,高于Javascript和按钮.
欢迎大家提出意见.谢谢.
这是我的交易数据。它显示了从from列中的帐户到to带有日期和金额信息的列中的帐户的交易
data
id from to date amount
<int> <fctr> <fctr> <date> <dbl>
19521 6644 6934 2005-01-01 700.0
19524 6753 8456 2005-01-01 600.0
19523 9242 9333 2005-01-01 1000.0
… … … … …
1056317 7819 7454 2010-12-31 60.2
1056318 6164 7497 2010-12-31 107.5
1056319 7533 7492 2010-12-31 164.1
Run Code Online (Sandbox Code Playgroud)
我想计算from在进行特定交易的日期之前的过去 6 个月中列中的帐户收到的交易金额,并希望将此信息保存为新列。
以下代码可以很好地在一个小数据集(例如 1000 行)中完成此操作:
data
id from to date amount
<int> <fctr> <fctr> <date> <dbl>
19521 6644 6934 2005-01-01 700.0
19524 6753 8456 2005-01-01 600.0 …Run Code Online (Sandbox Code Playgroud) 如何使用字符向量变量作为参数动态查找多个字段并通过引用添加.在下面的情况下,我想查找两列并删除i.它们中的前缀.当然,他们可以覆盖具有相同名称的现有列.
library(data.table)
set.seed(1)
ID <- data.table(id = 1:3, meta = rep(1,3), key = "id")
JN <- data.table(idd = sample(ID$id, 3, FALSE), value = sample(letters, 3, FALSE), meta = rep(1,3), key = "idd")
select <- c("value","meta") # my fields to lookup
j.lkp <- call(":=", select, lapply(paste0("i.",select), as.symbol))
j.lkp
# `:=`(c("value", "meta"), list(i.value, i.meta))
ID[JN, eval(j.lkp)]
# Error in eval(expr, envir, enclos) : could not find function "i.value"
ID[JN, `:=`(c("value", "meta"), list(i.value, i.meta))]
# id meta value
# …Run Code Online (Sandbox Code Playgroud) 一些背景:
R语言社区有一个名为CRAN的大包软件包.使用drat包可以很容易地托管类似CRAN的私有存储库.有许多组织使用drat包和gh-pages分支来托管他们的R包.Drat只是创建一个R命令可识别的目录结构install.packages().index.html存储库结构中没有文件.
我的问题是:
如何从这些收集每个文件的下载统计信息gh-pages?我找到了" 如何将Google Analytics跟踪ID添加到GitHub页面 "的问题,但它需要一个index.html,因此无法在此处使用.
有什么建议如何解决这个问题?
GitHub是否支持此功能?
我正在寻找有关如何与SSE进行并行前缀和的一些建议.我有兴趣在一系列整数,浮点数或双精度数上执行此操作.
我想出了两个解决方案.一个特例和一般情况.在这两种情况下,解决方案在与OpenMP并行的两次传递中在阵列上运行.对于特殊情况,我在两次传球时使用SSE.对于一般情况,我只在第二遍使用它.
我的主要问题是如何在一般案例的第一遍中使用SSE? 以下链接simd-prefix-sum-on-intel-cpu显示字节的改进,但不是32位数据类型.
特殊情况称为特殊情况的原因是它要求数组采用特殊格式.例如,假设a浮点数组中只有16个元素.然后,如果数组像这样重新排列(结构数组结构):
a[0] a[1] ...a[15] -> a[0] a[4] a[8] a[12] a[1] a[5] a[9] a[13]...a[3] a[7] a[11] a[15]
Run Code Online (Sandbox Code Playgroud)
SSE垂直总和可用于两个通道.但是,只有当数组已经采用特殊格式并且输出可以以特殊格式使用时,这才有效.否则,必须在输入和输出上进行昂贵的重新排列,这将使其比一般情况慢得多.
也许我应该考虑一个不同的前缀和算法(例如二叉树)?
一般情况的代码:
void prefix_sum_omp_sse(double a[], double s[], int n) {
double *suma;
#pragma omp parallel
{
const int ithread = omp_get_thread_num();
const int nthreads = omp_get_num_threads();
#pragma omp single
{
suma = new double[nthreads + 1];
suma[0] = 0;
}
double sum = 0;
#pragma omp for schedule(static) nowait //first parallel pass
for (int i …Run Code Online (Sandbox Code Playgroud) 我有数据,其中两个变量("ManufactererId"和"ProductId")的组合构成唯一的键/标识符.数据如下所示:
my.data <- data.frame(ManufactererId = c(1, 1, 2, 2),
ProductId = c(1, 2, 1, 7),
Price = c(12.99, 149.00, 0.99, 3.99))
my.data
# ManufactererId ProductId Price
# 1 1 1 12.99
# 2 1 2 149.00
# 3 2 1 0.99
# 4 2 7 3.99
Run Code Online (Sandbox Code Playgroud)
我想确保我不会意外地添加另一行ManufactererId - ProductId等于表中已存在的行(就像数据库表上的唯一约束一样).
也就是说,如果我尝试向我的数据框添加ManufactererId = 2和ProductId = 7的行:
my.data <- rbind(my.data, data.frame(ManufactererId = 2, ProductId = 7, Price = 120.00))
Run Code Online (Sandbox Code Playgroud)
......它应该失败并出错.怎么能实现这一目标?
或者我应该使用不同的数据类型?
r ×7
data.table ×3
aggregation ×1
arrays ×1
c ×1
data.cube ×1
dataframe ×1
devtools ×1
drat ×1
dynamic ×1
github ×1
github-pages ×1
knitr ×1
lookup ×1
matrix ×1
openmp ×1
performance ×1
postgresql ×1
purrr ×1
r-markdown ×1
roxygen2 ×1
sql ×1
sse ×1
star-schema ×1
sum ×1
unique-key ×1
vector ×1