【发布时间】:2020-05-24 02:44:10
【问题描述】:
我想要分组数据框中的时间序列相关性。这是一个示例数据集:
x <- cbind(expand.grid(type = letters[1:4], time = seq(1:4), kind = letters[5:8]), value = rnorm(64)) %>% arrange(type, time, kind)
生成 64 行变量 type、time、kind 和 value。
我想要按type 分组的每个kind 的值的时间序列相关性。将每个 type 和 time 组合视为 4 个值的有序向量。我按type和time分组,然后按kind排列,然后删除kind。
y <- x %>% group_by(type) %>% arrange(type, time, kind) %>% select(-kind)
然后,我可以按类型和时间对 y 进行分组并嵌套,以便所有值都在数据变量中,仅按 type 重新分组并创建一个新变量,即前导 data。
z <- y %>% group_by(type, time) %>% nest(value) %>% group_by(type) %>% mutate(ahead = lead(data))
现在我想运行mutate(R = cor(data, ahead)),但我似乎无法正确获取语法。
我也尝试过mutate(R = cor(data$value, ahead$value)) 和mutate(R = cor(data[1]$value, ahead[1]$value)),但无济于事。
我从cor 得到的错误是:supply both 'x' and 'y' or a matrix-like 'x'。
如何将数据和前向变量作为向量引用以使用cor 运行?
最终,我正在寻找一个包含 type、time 和 R 列的 16 行数据框,其中 R 是单个相关值。
感谢您的关注。
【问题讨论】: