我有一个由直方图箱表示的因子变量,其值为: '660-664' , ... , '740-744' , 745-749' ..
如何将因子变量映射到其平均值,例如将“660-664”映射到 662?
基本上,我正在寻找的是“cut”函数的倒数。
我有一个由直方图箱表示的因子变量,其值为: '660-664' , ... , '740-744' , 745-749' ..
如何将因子变量映射到其平均值,例如将“660-664”映射到 662?
基本上,我正在寻找的是“cut”函数的倒数。
您可以使用plot = FALSE
参数 fromhist
来提取中断,然后使用它来获取中点:
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