У меня есть большой вектор символов, содержащий числа, которые мне нужно исправить, а затем преобразовать в числовой вектор, например:
data.f <- c('11.23', '34,32 + 12,17', '21.1')
Мне нужно войти врезультат, подобный следующему:
num 11.23 34.32 21.1
Я пытался использовать семейство функций применения для решения этой проблемы
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 - чтобы изменить точку до
подстрока - вырезать лишние символы (было бы лучше найти среднее)
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"
Мне нужна помощь, чтобы найти решение, может, какой-нибудь хороший человек увидит то, что я испортил?