Ошибка: NA введены по принуждению при преобразовании символа в числовой - PullRequest
0 голосов
/ 17 мая 2019

Я хочу преобразовать столбец $ Annual.income, сохраненный как символ в моем фрейме данных, в числовой.Код, который я использую, дает значения NA, хотя новый класс числовой.

Я искал ответ на форумах, но ни один из вопросов не отвечает моей проблеме: у меня нет NA в столбце Annual.income, естьтолько цифры.Все данные отформатированы так, чтобы иметь «.»вместо "," для десятичных.Вот код, который я использую.

data$Annual.income <- as.numeric(as.character(data$Annual.income))

****************************** ОБНОВЛЕНИЕ ***************************************************

Вотdput из столбца Annual.income.

dput(data$Annual.income)
c("34 500", "51 400", "43 200", "40 100", "36 400", "39 100", 
"41 900", "48 700", "45 500", "45 500", "49 100", "35 100", "34 500", 
"29 200", "32 200", "36 300", "35 800", "31 500", "33 000", "34 600", 
"32 100", "32 000", "31 400", "33 200", "42 600", "29 200", "34 600", 
"29 200", "34 100", "30 600", "34 034", "33 600", "31 000", "35 500", 
"30 600", "30 600", "30 600", "30 800", "34 034", "33 200", "32 900"
)

Следующее по-прежнему дает мне NA.

data$Annual.income <- as.numeric(data$Annual.income))

Я импортировал данные с помощью команды Import dataset из Environement и непроверенного stringAsfactor, проверилзаголовок = ДА.Разделитель = точка с запятой, десятичный = период.Спасибо ...

1 Ответ

0 голосов
/ 17 мая 2019

Пробел вызывает проблему здесь, просто удалите все символы пробела с помощью gsub(), например,

Annual.income <- c("34 500", "51 400", "43 200", "40 100", "36 400", "39 100", 
  "41 900", "48 700", "45 500", "45 500", "49 100", "35 100", "34 500", 
  "29 200", "32 200", "36 300", "35 800", "31 500", "33 000", "34 600", 
  "32 100", "32 000", "31 400", "33 200", "42 600", "29 200", "34 600", 
  "29 200", "34 100", "30 600", "34 034", "33 600", "31 000", "35 500", 
  "30 600", "30 600", "30 600", "30 800", "34 034", "33 200", "32 900"
)

as.numeric(gsub("\\s", "", Annual.income))
#>  [1] 34500 51400 43200 40100 36400 39100 41900 48700 45500 45500 49100
#> [12] 35100 34500 29200 32200 36300 35800 31500 33000 34600 32100 32000
#> [23] 31400 33200 42600 29200 34600 29200 34100 30600 34034 33600 31000
#> [34] 35500 30600 30600 30600 30800 34034 33200 32900

Создано в 2019-05-17 пакетом Представить (v0.2.1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...