【问题标题】:How can I find Covariance for every n row in R如何找到 R 中每 n 行的协方差
【发布时间】:2017-07-18 02:38:46
【问题描述】:

我有 2 组大数据,每个都有 2000 多个数据,并试图找到每 5 行的协方差。

x=c(1,2,3,4,5)
y=c(6,7,8,9,10)
df=data.frame(x,y)
group=rep(1:length(df),each=2,length=length(df))

我的下一步是什么,这样我才能找到这样的协方差`

cov(x[1:2,],y[1:2,])

cov(x[3:4,],y[3:4,])

【问题讨论】:

  • 您的帖子中有一些错误,@Ian。 a 没有定义,xy 开始是向量,但后来它们不是,你有一个 } 而不是 ]。另外,问题不是很清楚。
  • 对不起。我只是编辑它,这样更好吗?

标签: r dataframe rstudio covariance rollapply


【解决方案1】:
library(zoo)    
x = c(1,2,3,4,5)
y = c(6,7,8,9,10)
rows = 2
out = rollapply(data.frame(x,y), rows, function(x) cov(x[,1],x[,2]),
                    by.column=FALSE)
out

【讨论】:

  • 你介意用rollapply解释一下吗?我在我的 data.frame 中尝试过,由于某种原因,我的协方差结果都是一样的:(
  • 基本上,rollapplyxy 数据框中的每个n 行应用cov() 函数(因此data.frame(x,y))。由于您的数据,您得到了相同的值(我假设是0.5?)。尝试更改x = rnorm(5, 0, 2)y = rnorm(5, 0, 3),您会看到不同。
  • 非常感谢您的帮助。我已经解决了:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
  • 2017-06-22
  • 2018-11-10
  • 1970-01-01
  • 2020-07-09
相关资源
最近更新 更多