私はRを初めて使い、並行して統計を学びながらいくつかのクールな関数を書く作業をしています。私は、数値ベクトルを取る関数を作ろうとしている、 "平方平均2乗"演算を実行し、可能性のある外れ値が除去された出力が本質的に同じベクトルを返すようにする。例えばRプログラミング関数(実数二乗のサブセットを返す)
ベクターは、C(2,4,9,10,100)である場合、得られたRMSは、約37
したがって、私は、出力(の可能な外れ値と同じベクトルを返すようにしたいであろうこのケース、100)がデータセットから削除されました。結果は2、4、9、10になります
私のコードは以下に載せていますが、出力が機能していません。私はそれを2つの方法で試しました。 RMSが最終的に動作することを示す行までのすべて。しかし、それはそうではありません。
私はこの機能をどのように変更して、私が望むことができますか?また、ボーナスとして、これは多くの質問をしているかもしれませんが、以下のコーディングに基づいて、初心者のためのヒントは何かに感謝したいと思います。本当にありがとう!
RMS_x <- c(2,4,9,10,100)
#Root Mean Squared Function - Takes a numeric vector
RMS <- function(RMS_x){
RMS_MEAN <- mean(RMS_x)
RMS_DIFF <- (RMS_x-RMS_MEAN)
RMS_DIFF_SQ <- RMS_DIFF^2
RMS_FINAL <- sqrt(sum(RMS_DIFF_SQ)/length(RMS_x))
for(i in length(RMS_x)){
if(abs(RMS_x[i]) > RMS_FINAL){
output <- RMS_x[i]}
else {NULL} }
return(output)
}
#Root Mean Squared Function - Takes a numeric vector
RMS <- function(RMS_x){
RMS_MEAN <- mean(RMS_x)
RMS_DIFF <- (RMS_x-RMS_MEAN)
RMS_DIFF_SQ <- RMS_DIFF^2
RMS_FINAL <- sqrt(sum(RMS_DIFF_SQ)/length(RMS_x))
#output <- ifelse(abs(RMS_x) > RMS_FINAL,RMS_x, NULL)
return(RMS_FINAL)
}
私はRを学ぶための練習としてそれを修正したいと思いました。そして、私は本当にボックスプロットを使用したくありません。私はそれが私が想像していたように動作させる方法を学びたいだけです。しかし、私は努力に感謝します。 – Mitsugi