2014-05-23 9 views
0

Я новичок в R, и я узнал, что символьная строка типа «12.5» может быть принудительно введена в числовое число с помощью функции as.numeric(), что дает мне следующий результат.Принуждение символа к номеру в R

> as.numeric("12.5") 
[1] 12.5 

Но когда я пытаюсь следовать, результат не содержит дробную часть.

> as.numeric("12.0") 
[1] 12 

есть способ сохранить дробную часть в результате ...

Спасибо заранее ...

+0

Существует не дробная часть для хранения. –

+0

Как указывает @MatthewLundberg, дробной части не остается. Обратите внимание, что существует разница между тем, что хранится и что отображается. Вы можете получить R, чтобы показать определенное количество цифр после десятичной точки независимо от того, что это другой вопрос. – Dason

+0

Привет, Дэсон: «Вы можете получить R, чтобы показать определенное количество цифр после десятичной точки независимо от того, что». Если вы можете показать мне, как это сделать, это будет большой помощью ... –

ответ

1

Является ли это действительно нужно печатать целые числа, так? Если вы беспокоитесь о том, как это будет выглядеть с другими номерами, скажем, в векторе или кадре данных, не волнуйтесь. Если у вас есть хотя бы одно десятичное число в векторе, весь номер будет отображаться как десятичный.

> as.numeric(c("12.0", "12.1")) 
## [1] 12.0 12.1 

> data.frame(x = as.numeric(c("12.0", "12.1"))) 
##  x 
## 1 12.0 
## 2 12.1 

Если это просто для целей внешнего вида, есть несколько функций, которые могут сделать 12.0появляются числовыми. Имейте в виду, однако, что это не принуждает к числовому, хотя похоже, что это так.

> noquote("12.0") 
## [1] 12.0 

> cat("12.0") 
## 12.0