English · PDF 320
c(TRUE, TRUE, FALSE, NA) #> [1] TRUE TRUE FALSE NA
整数型(integer)和双精度型(double)向量统称为数值向量。在 R 中,数字默认是双精度型。要创建整数,请在数字后面加一个 L:
typeof(1) #> [1] "double" typeof(1L) #> [1] "integer" 1.5L #> [1] 1.5
整数和双精度数之间的区别通常并不重要,但有两个重要的差异你应该了解:
x <- sqrt(2) ^ 2 x #> [1] 2 x - 2 #> [1] 4.44e-16
在处理浮点数时这种行为很常见:大多数计算都包含一些近似误差。不要使用 == 来比较浮点数,而应该使用 dplyr::near(),它允许一定的数值容差。
c(-1, 0, 1) / 0 #> [1] -Inf NaN Inf
避免使用 == 来检查这些其他特殊值,而应使用辅助函数 is.finite()、is.infinite() 和 is.nan():