我想在分组数据的滑动窗口上计算一个和。
如果可能的话,我想坚持官方活动,所以我从rollapplyr开始,如下所示:
library(tidyverse)
library(reshape2)
library(zoo)
data = data.frame(Count=seq(1,10,1),
group=c("A","B","A","A","B","B","B","B","A","A"))
w
我想获得过去1到10个事件的滚动平均值,按多列的一列进行分组。我还希望它非常快,比如在dplyr或data.table中,因为我想在1,000,000 x 1,000数据帧上运行它。
启动df
data.table(a = c("bill", "bob", "bill", "bob", "bill", "bob"),
b = c(1,2,1,1,3,2),
c = c(2,3,9,1,4,1),
d = c(4,5,1,7,3,4))
1: bill 1
我已经开始使用WPF,并开始使用一些游戏和可视化应用程序。
在我的第一个应用程序中,我启动了一个空白项目,然后创建了一个从窗口继承的类,该窗口具有动态添加和删除图像的画布,如下所示:
class MainWindow : Window
{
public Canvas canvas=new Canvas();
public MainWindow()
{
this.addChild(canvas);
}
//add an image every second move it and remove it
}
使用静态XML是不可能的,但是有人告诉我
在R中,我试图用不同的窗口宽度对一个大矢量(高达400 k元素)做一个非常快速的滚动平均值,然后对每个窗口宽度以每年的最大值来总结数据。希望下面的例子是清楚的。我尝试了几种方法,到目前为止,最快的方法似乎是使用来自包RcppRoll的RcppRoll作为运行平均值,使用aggregate来选择最大值。请注意,内存需求是一个问题:下面的版本只需要很少的内存,因为它一次只进行一次滚动和聚合;这是首选的。
#Example data frame of 10k measurements from 2001 to 2014
n <- 100000
df <- data.frame(rawda
对于下面的问题,必须有一个简单的、可能的递归解决方案。如果有人能帮忙,我将不胜感激: 我使用data.table和RcppRoll来计算每种产品在过去26周内符合条件的周销售额。在窗口为26的情况下,只要当前周的数量大于26,就可以正常工作。但是,当# of current week为<= 26时,我想使用大小为26、25、...等等的窗口。 公式为:基线销售额=超过26周(或更少)的销售总和(当前周之前,仅限合格周)除以合格周数 下面是一些创建测试数据的代码: library("data.table")
library("RcppRoll")
pro
我正试图产生观察的“插曲”,把发生在</= 14天之间的观测集合在一起。使用dplyr,我成功地计算了上一次观察以来的天数。但是,我不知道如何在没有条件</= 14循环的情况下基于条件for获得新的id。
样本数据:
#obsvn is number of days since first observation in group
dat <- data.frame(id = c(rep("A",5), rep("B", 2)),
obsvn = c(1, 2, 29, 30, 45, 1, 15))
我有一个大的矩阵,每天的回报都是宽格式的,我想在一个时变的窗口-1;-251中计算日波动率。
我使用以下代码:
n=1000
m=500
ret=matrix(rnorm(n*m,mean=0,sd=1), n, m)
vola=matrix(0, n, m)
start.time = Sys.time()
for (j in 1: ncol(ret)){
for (i in 251:nrow(ret)){
vola[i,j]=sd(ret[(i-1):(i-251+1),j])*sqrt(251)}
}
end.time = Sys.time()
time.taken =
zoo::rollmean是一个返回时间序列滚动均值的有用函数;对于长度为n和窗口大小为k的向量x,它返回向量c(mean(x[1:k]), mean(x[2:(k+1)]), ..., mean(x[(n-k+1):n]))。
我注意到,对于我正在开发的一些代码,它似乎运行得很慢,所以我使用Rcpp包和一个简单的for循环编写了自己的版本:
library(Rcpp)
cppFunction("NumericVector rmRcpp(NumericVector dat, const int window) {
const int n = dat.size();
Numeri