編集:価格の中央値と中央値が完全に重ならないようにシミュレーションデータを変更しました。データフレーム列の値を集計/切り捨ての結果に置き換えます。
私はデータフレームに列を持っていますが、これをPriceと呼んでいます。私はここにデータをシミュレートしています:
mydata = data.frame(index = rep(1:1000))
mydata$price[1:300] = rnorm(250, mean = 10000, sd = 1000)
mydata$price[301:550] = rnorm(250, mean = 25000, sd = 1000)
mydata$price[551:775] = rnorm(250, mean = 75000, sd = 1000)
mydata$price[776:1000] = rnorm(250, mean = 100000, sd = 1000)
そして地域のセット、我々はそれがフードを呼び出します:
mydata$hoods = factor(c(rep('hood1',250),rep('hood2',250),rep('hood3',250),rep('hood4',250)))
その後、私は中央値のビンを作成するために、中間価格で地域を集約します。彼らの中央値段で近所をビンしたいと思います。
agg <- aggregate(mydata$price, by = list(hoods), FUN = median))
次に、近傍の中央値のカットバージョンを作成します(実際のデータには24個の近傍があります)。だから、のようなもの:
cut_aggregates <- cut(agg$x, breaks = c(0, 25000, 70000, 110000), labels = c('low','medium','high'))
は、私は、集約された価格ラベルと、元のデータ内のすべての「hood1」の値を置き換える、というようにすべての地域のためにしたいと思います。最初の250レコードは「低」となります。私はいくつかのネストされたifステートメント、またはブルートフォースハードコーディングを行うことができることを知っています。誰も私がより効率的にすべての値を割り当てることができる方法を知っていますか?私はこれを1000レコード以上のデータセットに使用するかもしれません。ご協力いただきありがとうございます。
最終的な出力では、分類された近傍( '低'、 '中'、高)は、元のデータの価格でcut
と同じである必要はありません。この戦略を使用して、「低」、「中」、および「高」の組み合わせ。私は、最初にその集約に基づいて各近隣を分類し、次にその近隣を再編成したいと思います。
は、なぜあなたは、単に '(MYDATA $カットしないでください価格、休憩...) '? –
私はそれについて考えましたが、それは中央値に基づいてそれらを壊すとは思わなかった。 –
ブレークを正しく設定するだけで済みます。 –