【发布时间】:2020-01-24 19:28:23
【问题描述】:
我有一个很大的字符向量,包含我需要更正的数字,然后转换为数字向量,例如:
data.f <- c('11.23', '34,32 + 12,17', '21.1')
我需要得到这样的结果:
num 11.23 34.32 21.1
我尝试使用apply函数族来解决这个问题
num <- sapply(data.f, function(x) ifelse(nchar(data.f[x])<6, data.f[x] <- as.numeric(data.f[x]), data.f[x] <- as.numeric(substring(gsub("[,]", ".", data.f[x]), 1,5))))
我尝试过不同的选择
num <- sapply(data.f, function(x) ifelse(nchar(data.f[x])<6, as.numeric(data.f[x]), as.numeric(substring(gsub("[,]", ".", data.f[x]), 1,5))))
gsub - 改变来点
substring - 剪掉多余的符号(最好找到平均值)
as.numeric - 将字符转换为数字
但结果和我一样:
str(num)
- attr(*, "names")= chr [1:3] "11.23" "34,32 + 12,17" "21.1"
attributes(num)
$names
[1] "11.23" "34,32 + 12,17" "21.1"
我需要帮助来解决问题,也许一些好人会看到我搞砸了什么?
【问题讨论】: