36

Rには対称であるはずのマトリックスがありますが、マシンの精度により、マトリックスは対称ではありません(値は約10 ^ -16異なります)。マトリックスが対称であることを知っているので、これまでのところ、問題を回避するためにこれを行ってきました。

s.diag = diag(s)
s[lower.tri(s,diag=T)] = 0
s = s + t(s) + diag(s.diag,S)

これのためのより良い1行のコマンドはありますか?

4

6 に答える 6

69
s<-matrix(1:25,5)
s[lower.tri(s)] = t(s)[lower.tri(s)]
于 2014-02-17T10:03:07.030 に答える