У меня есть столбик с голами в футболе. Записи являются символьными строками в формате «43» или «90 + 2». В R as.numeric () преобразует массив символов «43» в число 43, но преобразует «90 + 2» в NA. Мне нужна функция, которая превращает значения, подобные последним, в 92. Я попробовал:
function(y){
x = vector(mode='numeric',length=length(y))
for(i in 1:length(y)){
for(j in 1:nchar(y[i])){
if(substring(y[i],j,j)=="+"){
x[i]=as.numeric(substring(y[i],1,j-1))+as.numeric(substring(y[i],j+1,nchar(y[i])))
}
if((substring(y[i],j,j)!="+") & (j==nchar(y[i]))){
x[i]=as.numeric(y[i])
}
}
}
return(x)
}
Но это не работает в значениях, таких как "90 + 2". Я не мог определить свою ошибку. Пожалуйста, помогите мне.