Преобразование целого числа в число c с использованием в качестве - PullRequest
1 голос
/ 12 марта 2020

Я пытался привести целое число к нумерации c, используя as, и обнаружил следующее:

str(as(1L, "numeric"))
# int 1

str(as.numeric(1L))
# num 1

str(as(1L, "double"))
# num 1

Я ожидаю, что первое также будет иметь тип нумерации c. Почему он не возвращает числовой c вектор? Нужно ли мне match.fun("as.numeric") вместо этого?

Так как на as.numeric есть много вопросов, я не могу найти дурака для этого. Но если есть, я очень рад закрыть вопрос.

Использование R-3.6.1 Win x64

1 Ответ

1 голос
/ 12 марта 2020

С ?double

Потенциальная путаница заключается в том, что R использовал режим «цифра c» для обозначения «двойного или целого» * ​​1005 *

С ?numeric

as.numeric является обобщенной c функцией, но для as.double должны быть написаны методы S3. Это идентично as.double.

По сути, ничего не меняется, когда вы делаете as(1L, "numeric"), потому что 1L уже numeric.

По любой причине as.numeric кажется, идентичен as.double.

Вещи могут отличаться для S4.

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