我想在管道过程中替换矩阵的对角线元素,但不知道如何做到。我知道可以使用 diag()
函数来替换对角线元素,但我不知道如何在管道过程中使用 diag()
函数。以下是示例数据,我希望将以下步骤放在一起进行管道处理。先行致谢。
aa <- matrix(1:25, nrow =5)
diag(aa) <- NA
一种选择可能是:
aa %>%
`diag<-`(., NA)
[,1] [,2] [,3] [,4] [,5]
[1,] NA 6 11 16 21
[2,] 2 NA 12 17 22
[3,] 3 8 NA 18 23
[4,] 4 9 14 NA 24
[5,] 5 10 15 20 NA
replace
。library(dplyr)
aa %>%
replace(., col(.) == row(.), NA)
-输出
# [,1] [,2] [,3] [,4] [,5]
#[1,] NA 6 11 16 21
#[2,] 2 NA 12 17 22
#[3,] 3 8 NA 18 23
#[4,] 4 9 14 NA 24
#[5,] 5 10 15 20 NA
diag<-
NA_,但没有成功。感谢您向我展示了正确的方法。 - rm167()
在这里如何使用,没有关联函数。它们也不是diag()
函数的参数。 - rm167View(
diag<-)
。你可以看到它是如何定义的。 - tmfmnk