2015-08-19 3 views
2

У меня есть вектор, который я пытаюсь преобразовать из символа в числовой. Я выделил его в следующее. Любая идея, что происходит? Почему это «число» или последовательность символов «1,257.15» делают это? Я загружаю набор данных из 8000 строк и около 50 выдает ошибку при выполнении as.numeric() или as.numeric_version.as.numeric (as.character ('1,257.15')), давая ошибку

as.numeric(as.character('1,257.15')) 
[1] NA 
Warning message: 
NAs introduced by coercion 

traceback() 
3: stop(gettextf("invalid version specification %s", paste(sQuote(unique(x[!ok])), 
     collapse = ", ")), call. = FALSE, domain = NA) 
2: .make_numeric_version(x, strict, .standard_regexps()$valid_numeric_version) 
1: numeric_version(as.character("1,256.15")) 

numeric_version(as.character('1,256.15')) 
Error: invalid version specification ‘1,256.15’ 

Тогда я попробовал это.

numericDeriv(as.character('1,257.15')) 

Error in rep_len(dir, length(theta)) : 
    argument "theta" is missing, with no default 

ответ

0

Удалить запятую.

gsub(',', '', your_string_here) 

После этого он будет правильно разбираться.

a <- '1,257.15' 
b <- gsub(',', '', a) 
as.numeric(b) 
+1

Это не является надежным для чисел с более чем одной запятой, например. '1,234,567.89'. Просто удалите все запятые, как один из других ответов. –

+0

@ Mathematical.coffee Готово. – VermillionAzure

+0

Спасибо. В моем примере я напечатал строку и не имел дополнительного места. Хотя мне нравится решение, меня беспокоит, что решение даже необходимо. Любая идея, что происходит «под капотом»? – Tom

Смежные вопросы