Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

My question:

Amat <- diag(4)

I would like to replace all the lower triangular values of Amat (i.e. Amat[2,1], Amat[3,1], Amat[3,2], and so on) with a value I choose (e.g. NA).

Obviously I do not want to replace each element one by one.

Could you show me the most efficient way to do it with a single command?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
529 views
Welcome To Ask or Share your Answers For Others

1 Answer

This is pretty well documented in the docs for upper.tri.

Amat[upper.tri(Amat)] <- NA
Amat
#      [,1] [,2] [,3] [,4]
# [1,]    1   NA   NA   NA
# [2,]    0    1   NA   NA
# [3,]    0    0    1   NA
# [4,]    0    0    0    1

Of course, Amat[lower.tri(Amat)] <- NA would do the same for converting the lower triangle to NAs.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...