データの最小要素数をタッチして中央値を変更する関数を記述したいと思います。私のデータは以下のように、ループを終了する条件R
data = data.frame(name=letters, values = c(0.183487333,0.487690292, 0.510321455,0.616632727, 0.660789818, 0.845322255, 0.867910555, 0.911842909, 0.913312571, 1.017638286, 15.97454546, 16.20765382, 16.27542982, 16.307264, 17.38325527, 17.54139927, 70.08443928, 70.26106764, 75.79405382, 77.72412946, 79.58750724, 84.67373672, 87.04692364, 88.58626037, 94.79392582, 100.0000))
data = data %>% mutate(diff = abs(values - median(values)), rank_diff = dense_rank(diff)) %>% arrange(diff)
であり、以下に私の機能である、
changemedian <- function(data, increase, rows)
{
median2 = median(data$value)
new_median = median2 + increase
i = 0
print(data$name[1:rows])
data1 = data$values
while(median2<new_median){
x = median2
data1[1:rows] = data1[1:rows] + 0.2
median2 = median(data1)
i = i + 0.2
}
print(paste("values to be changed per name:",i))
cat("\n")
print(paste("New Median that could be achieved:" ,median2))
}
私は1で中央値を増やしたいと私はやって唯一の5つの値を使用したいときに私は、この関数を呼び出すことができますそれはchangemedian(data,1,5)
によってそれです。コードはこれでうまくいきます。しかし、中間値がchangemedian(data,1,1)
のように達成できないような状況にならないと、ループは実行され続けます。中央値が前の中央値と等しいときにループを終了して終了します。ここで、前のループでmedian2がmedian2の値に等しいとき、私は "不可能"と言ってループを終了したい。
これを行うにはエラーが発生しています。誰でもこのことを手伝うことができますか?
おかげ
はい、私はちょうどそれが起こるとき、ループを終了します:中央値は、この行を追加繰り返された場合にループを終了するには。ループを終了する際に手伝ってください。私はそれに間違いがある。 2つのループの中央値が等しい場合は、ループを終了します。 – haimen
ループを終了して、文ができないようにしたいだけです。それは私が苦労している場所です – haimen
私の編集を参照してください。これは解決するはずです –