R приводит символьный вектор к символьному и числовому
У меня есть вектор:
> vek
[1] "0" "0" "NULL" "0" "0" "0" "0" "NULL"
Я хочу, чтобы вектор в числовой, где числовой и строки, где строковой
> vek
[1] 0 0 "NULL" 0 0 0 0 "NULL"
Является ли это возможным? Как я могу справиться с этим?
1 ответ
Решение
Вы не можете иметь элементы разных типов в одном и том же векторе. Но вы можете сделать это в списке. Может быть, вы могли бы преобразовать свой вектор в список Direclty.
vekl <- as.list(vek)
for (i in 1: length(vekl)){
temp <- as.numeric(vekl[[i]])
if (! is.na(temp))
vekl[[i]] <- temp
}
Чтобы избежать предупреждений, используйте это: suppressWarnings( temp <- as.numeric(vekl[[i]]) )
, Он игнорирует все предупреждения, поэтому вы должны обратить внимание, когда вы используете эту функцию...