在 R 中将大数组的对角线设置为零
Set diagonals of a large array to zero in R
由于 DCC-GARCH,我有一个动态相关网络。我需要将每个数组的对角线转换为零。这是每日数据,所以我每天都有相关数组。当我输入
print(Corr)
一天的数组看起来像这样(我只能显示一个页面,因为只有一天适合页面,但我有 1000 天的相关数组)
如何一次将对角线转换为零?
试试这个:
Corr <- array( apply( Corr, 3, function(x) {
x[ row(x) == col(x) ] <-0; x} ), dim(Corr) )
apply 函数可以处理任何维度,这将传递一个矩阵-"slice" 到内部匿名函数并将其对角线设置为零。
由于 DCC-GARCH,我有一个动态相关网络。我需要将每个数组的对角线转换为零。这是每日数据,所以我每天都有相关数组。当我输入
print(Corr)
一天的数组看起来像这样(我只能显示一个页面,因为只有一天适合页面,但我有 1000 天的相关数组)
如何一次将对角线转换为零?
试试这个:
Corr <- array( apply( Corr, 3, function(x) {
x[ row(x) == col(x) ] <-0; x} ), dim(Corr) )
apply 函数可以处理任何维度,这将传递一个矩阵-"slice" 到内部匿名函数并将其对角线设置为零。