小编sim*_*mon的帖子

使用rollapply计算滚动相关性

我有10000多行的动物园对象.

> head(tt)
                      A             B
2007-01-04  0.005945924  0.0021167475
2007-01-05 -0.004201991 -0.0080020024
2007-01-08  0.001740897  0.0045804104
2007-01-09  0.000000000 -0.0008163931
2007-01-10 -0.004503531  0.0032615812
2007-01-11 -0.005841138  0.0043863282
Run Code Online (Sandbox Code Playgroud)

我尝试了以下行的变体,但无济于事.

rollapply(tt, 21, function(x) cor(x[,1],x[,2]))
Run Code Online (Sandbox Code Playgroud)

每个条目都给出1的相关性,看起来它正在从相关矩阵的对角线上取下1.

2013-11-25  1  1
2013-11-26  1  1
2013-11-27  1  1
2013-11-29  1  1
2013-12-02  1  1
2013-12-03  1  1
Run Code Online (Sandbox Code Playgroud)

我真正想要的是-0.4649,如下所示

> cor(tt)
           A          B
A  1.0000000 -0.4649881
B -0.4649881  1.0000000
Run Code Online (Sandbox Code Playgroud)

r zoo

10
推荐指数
2
解决办法
1万
查看次数

连接2个数据表没有任何键,但有一些逻辑链接

我有2个数据表:itemscategory

require(data.table)
set.seed(1L) # for reproducibility
category <- data.table(from = c(0,8,15,25,45.5,90,101), 
                       to = c(5,12,20,39,60,100,99999), 
                       class = c("A","B","C","D","E","F","G"))

items <- data.table(weight = sample(0:999,10000,replace=TRUE))  
Run Code Online (Sandbox Code Playgroud)

我希望"items"中的每一行都有一个类标签,例如,如果第一项的权重为7,它就会选择"B"类.类别权重不必跨越所有权重,可能存在间隙,因此类别A为0-5,B为8-12,C为15-20等

我可以在数据框中执行此操作%in%,但"item"数据集有1000万个项目,"category"数据集有200多个类别),因此我尝试在数据表中执行此操作.

我该怎么做?

r data.table

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

标签 统计

r ×2

data.table ×1

zoo ×1