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]]) ), Он игнорирует все предупреждения, поэтому вы должны обратить внимание, когда вы используете эту функцию...

Другие вопросы по тегам