有没有一种方法可以在固定长度的窗口上计算稀疏矩阵上的rollapply/rollsum?为了方便起见,我正在使用dgTMatrix,但我的问题并不是这个类特有的。例如,考虑生成一个8 x 10稀疏矩阵。
library(Matrix)
i <- c(1,3:8); j <- c(2,9,6:10); x <- 7 * (1:7)
A <- sparseMatrix(i, j, x = x, giveCsparse = FALSE)
> A
8 x 10 sparse Matrix of class "dgTMatrix"
[1,] .
给定(虚)向量
index=log(seq(10,20,by=0.5))
我想用居中窗口计算运行均值,在的两端计算带有锥形窗口的,即第一个条目保持不变,第二个是窗口大小为3的平均值,以此类推,直到达到指定的窗口大小。
这里给出的答案:似乎都会产生一个更短的向量,在窗口太大的地方切断开始和结束,例如:
ma <- function(x,n=5){filter(x,rep(1/n,n), sides=2)}
ma(index)
Time Series:
Start = 1
End = 21
Frequency = 1
[1] NA NA 2.395822 2
Hallo我目前正在用以下代码进行回归分析:
for (i in 1:ncol(Ret1)){
r2.out[i]=summary(lm(Ret1[,1]~Ret1[,i]))$r.squared
}
r2.out
此代码在第一列之前对数据帧中的每一列运行简单的OLS回归并提供这些回归的R^2。目前回归使用列的所有数据点。我现在需要的是,代码不是使用列中的所有数据点,而是使用滚动的数据点窗口。因此,他计算了30天的滚动窗口R^2在整个时间框架内。输出是一个矩阵,每个滚动窗口的每个(1,i)对的所有R^2。
此代码执行滚动回归部分,但不对每个(1,i)对进行回归。
dolm <-
更新:0没有使用默认值,在测试之后,正如答案所建议的那样,这是失败的条件。
function test($value='A') {
if ($value != 'A') {
echo 'OK';
}
else {
echo 'NOT OK';
}
}
test(); // Outputs NOT OK
test('A'); // Outputs NOT OK
test(0); // Outputs NOT OK, Should output OK?
test('
我有一个大约400个数据帧的列表,我想为每个数据帧提取特征。所有数据帧的功能都将是相同的。
数据帧由来自加速度计的信号组成,我将应用分类来识别不同的活动。因为我的类是基于特定模式的,所以我需要我的特征(统计特征和频域特征)基于窗口。
我可以直接对数据帧列表执行此操作吗?提取特征,然后将新的特征列添加回每个数据帧的列表中?
任何建议都将不胜感激。我被卡住了。我知道如何在每个数据帧上执行此操作,但处理如此多的数据帧非常耗时。
列表示例
# Dataframes, x and y are accelerometer measurements and a is annotation
df1 <
我想对时间序列向量的经验(无条件)风险值进行反向检验:
x = rnorm(1000)
xt = diff(x)
quantile(xt,0.01)
因此,我认为在R中的rollapply函数可能是有用的,因为我希望滚动a从时间t到结束时间T的分位数a,滚动窗口100通过一个观察。
如果我编码如下:
a = rollapply(xt,width=100,quantile(xt,probs=c(0.01)))
我收到一个错误:
Error in match.fun(FUN) :
'quantile(xt, probs = c(0.01))' is not a functio