首页 > 解决方案 > 使用 as 将整数转换为数字

问题描述

我试图将整数强制转换为数字,as并发现以下内容:

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

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

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

我希望第一个也是数字类型。为什么它不返回数字向量?我需要match.fun("as.numeric")代替吗?

由于关于 的问题很多as.numeric,我无法为此找到一个骗子。但如果有的话,我很高兴结束这个问题。

使用 R-3.6.1 Win x64

标签: r

解决方案


?double

潜在的混淆是 R 使用“数字”模式来表示“双精度或整数”</p>

?numeric

as.numeric是一个泛型函数,但S3必须为 as.double. 它与 相同as.double

基本上,当你这样做时没有任何改变,as(1L, "numeric")因为1L已经是numeric.

无论出于何种原因,as.numeric似乎与as.double.

对于S4.


推荐阅读