我有一个低三角矩阵:
> Mat1
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 0 0
[2,] 1 0 0 0 0
[3,] 3 3 0 0 0
[4,] 4 4 4 0 0
[5,] 4 1 1 3 0
lower.tri
返回一个逻辑矩阵,其大小与给定矩阵的大小相同,下三角或上三角中的条目为TRUE(R help)。
然后让
lowt <– lower.tri(Mat1)
xx <– Mat1[lowt]
xx
[1] 1 3 4 4 3 4 1 4 1 3
我的问题是Mat1 [lowt]是如何工作的?我们如何使用[]?将函数用作元素?这个想法是什么?有什么帮助吗?
答案 0 :(得分:1)
如何使用[]?!
将函数用作元素
lowt
不是函数,而是一个布尔矩阵,就像你自己说的那样:
lowt <– lower.tri(Mat1)
将lower.tri
的返回变量保存在lowt
中;因此,Mat1[lowt]
通过逻辑索引从Mat1
返回值 - 这是R中广泛使用的概念。