行列の対角線に -5 を入れようとしています。if文を使用しています。しかし、私のifステートメントは間違っています。誰か助けてくれませんか?
X= rbind(c(1.2,3.4,10.3),c(2,8,78),c(45,-36,8))
array(X,dim=c(3,3))
if (X != (1.2,8.0)){
cat(X)
} else {
cat(-5)
}
行列の対角線に -5 を入れようとしています。if文を使用しています。しかし、私のifステートメントは間違っています。誰か助けてくれませんか?
X= rbind(c(1.2,3.4,10.3),c(2,8,78),c(45,-36,8))
array(X,dim=c(3,3))
if (X != (1.2,8.0)){
cat(X)
} else {
cat(-5)
}
X <- rbind(c(1.2, 3.4, 10.3), c(2, 8, 78), c(45, -36, 8))
diag(X) <- -5
Joshua は、彼らが言ったようにバカになろうとしていたわけではありません。あなたが書いたものの多くがうまくいかないので、あなたが R に慣れていないことは明らかです。
if ステートメント内の条件は長さ 1 である必要があり、マトリックス全体をフィードすることを望んでいるように見えます。if のベクトル化されたバージョンがありますが、ifelse
それは行列に対して望むようには機能しません。
cat
コンソールに出力されますが、マトリックス内の要素は置き換えられません。実際にそれを達成するには、何らかの交換を行う必要があります。
また、対角線に固有の要素を手動で特定して置換を行うことも、おそらく最善の方法ではありません。より良い方法があります - それらのいくつかは Joshua がリンクしているイントロ マニュアルに記載されています。幸運を。