我有一列因子数据为“001:0 - 3.8979”和“002:3.879-6.528”。在10000个观测中有61个。我想用每个范围的平均值替换这些因子,我已经计算并将其作为数值列保存在文本文件中。因此,“001:0-3.8939”变为1.9489,依此类推。
如何快速完成?
答案 0 :(得分:3)
无需外部文件,这样做
ranges <- c("001:0 - 3.8979", "002: 3.879-6.528", "003: 7.528-10.356")
result <- sapply(ranges, function(r){
# Split by ":" to remove the index, then take the second element
# and split it by "-".
values <- strsplit(strsplit(r, ":")[[1]][2], "-")
# Return the mean (note you need to unlist the result of strsplit)
mean(as.numeric(unlist(values)))
})