0

'660-664' , ... , '740-744' , 745-749' ..の値を持つヒストグラム ビンで表される因子変数があります。

因子変数をその平均値にマッピングするにはどうすればよいですか?たとえば、'660-664' を 662 にマッピングしますか?

基本的に、私が探しているのは「カット」機能の逆です。

4

1 に答える 1

1

plot = FALSEfrom 引数を使用histしてブレークを抽出し、それを使用して中点を取得できます。

set.seed(1)
x <- sample(300, 30)
x
#  [1]  80 112 171 270  60 266 278 194 184  18 296  52 198 111 221 142
# [17] 204 281 108 219 262 290 182  35  74 107   4 105 237  93
temp <- hist(x, plot = FALSE)$breaks
temp
# [1]   0  50 100 150 200 250 300
rowMeans(cbind(head(temp, -1),
               tail(temp, -1)))
# [1]  25  75 125 175 225 275

更新: 範囲の文字列から平均を計算する

あなたのコメントから判断すると、次のようなものを探しているかもしれません。

myVec <- c("735-739", "715-719", "690-694", "695-699", "695-699",
           "670-674", "720-724", "705-709", "685-689")
myVec
# [1] "735-739" "715-719" "690-694" "695-699" "695-699" "670-674"
# [7] "720-724" "705-709" "685-689"
sapply(strsplit(myVec, "-"), function(x) mean(as.numeric(x)))
# [1] 737 717 692 697 697 672 722 707 687
于 2013-02-13T12:23:13.660 に答える