将一列因子数据替换为一列数字数据。

时间:2013-10-30 07:08:14

标签: r

我有一列因子数据为“001:0 - 3.8979”和“002:3.879-6.528”。在10000个观测中有61个。我想用每个范围的平均值替换这些因子,我已经计算并将其作为数值列保存在文本文件中。因此,“001:0-3.8939”变为1.9489,依此类推。

如何快速完成?

1 个答案:

答案 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)))
       })