在 R 中使用 lapply 创建(协方差)矩阵列表时出错

Mataunited18

我有这个公式,它创建了一个包含 251 个元素的大列表:

lapply(2:nrow(mat), function(y) cov(mat[1:y,]))

matdim()

[1] 252  80

但我希望它从 1 开始,即1:nrow(mat)这样我得到 252 个类似于nrow(mat). 但是更改2:nrow(mat)1:nrow(mat)会产生此错误消息:

lapply(1:nrow(mat), function(y) cov(mat[1:y,]))

Error in cov(mat[1:y, ]) : 
  supply both 'x' and 'y' or a matrix-like 'x'

有谁知道解决这个问题的方法?

太空人

如果你用一个小矩阵做实验,你可以更容易地看到发生了什么:

mat=matrix(1:12, 3,4)

lapply(1:nrow(mat), function(y) cov(mat[1:y,]))

Error in cov(mat[1:y, ]) : 
  supply both 'x' and 'y' or a matrix-like 'x'

所以你得到covmat[1:1,]

> mat[1:1,]
[1]  1  4  7 10

它突然不再是矩阵了!这就是错误告诉你的(“供应......类似矩阵的'x'”)。这是因为当您对单行或单列进行子集化时,R 会删除维度。使用以下命令调整此行为drop=FALSE

> mat[1:1,,drop=FALSE]
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10

无论如何,列式协方差此时并不是很有意义:

> cov(mat[1:1,, drop=FALSE])
     [,1] [,2] [,3] [,4]
[1,]   NA   NA   NA   NA
[2,]   NA   NA   NA   NA
[3,]   NA   NA   NA   NA
[4,]   NA   NA   NA   NA

但它至少存在...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过在R中使用lapply从分类数据创建子组

来自分类Dev

没有功能时在R中使用lapply?

来自分类Dev

R使用lapply和sapply询问包含置换数据的矩阵列表

来自分类Dev

如何避免在R中使用嵌套的lapply?

来自分类Dev

在R中使用lapply()遍历id

来自分类Dev

如何在R中使用lapply

来自分类Dev

使用lapply时出错?

来自分类Dev

使用lapply时出错?

来自分类Dev

优化循环以在R中使用lapply或sapply组合列表中的项目

来自分类Dev

如何在R中使用lapply对包含多个数据帧的列表进行采样?

来自分类Dev

在R中使用`lapply`从初始数据帧中创建data.frames

来自分类Dev

在R中使用lapply和anova时的行为不一致

来自分类Dev

在R中使用lapply和anova时的行为不一致

来自分类Dev

在lapply中使用tryCatch重试列表的元素

来自分类Dev

在Lapply-R中使用cbind遇到错误

来自分类Dev

如何在R中使用lapply替换嵌套循环?

来自分类Dev

在Lapply-R中使用cbind遇到错误

来自分类Dev

如何在 R 中使用带有嵌套 lapply 的 unlist

来自分类Dev

使用R Lapply和函数参数列表迭代函数

来自分类Dev

在R中的多样化列表上使用lapply

来自分类Dev

使用lapply中的函数创建新的聚合R数据帧

来自分类Dev

尝试修改 r 中内置 kmeans 函数中使用的协方差矩阵

来自分类Dev

R:使用lapply创建新的列和值并应用嵌套在data.frame列表上的输出错误

来自分类Dev

在lm lapply调用列表中使用weights参数

来自分类Dev

使用协方差矩阵进行R中的投资组合优化

来自分类Dev

使用R的高频数据多协方差矩阵

来自分类Dev

使用lapply从列表进行预测

来自分类Dev

对拟合的线性模型使用`delthamethod` {msm}时出错:协方差应为anxn矩阵

来自分类Dev

R:使用lapply添加新列

Related 相关文章

热门标签

归档