我经常编写 R 代码来测试向量的长度、数据框中的行数或矩阵的维数,例如 if (length(myVector) == 1)
.在浏览一些基本的 R 代码时,我注意到在这样的比较中,值明确表示为整数,通常使用“L”后缀,例如 if (nrow(data.frame) == 5L)
.显式整数有时也用于函数参数,例如来自 cor
的这些语句功能:x <- matrix(x, ncol = 1L)
和 apply(u, 2L, rank, na.last = "keep")
.什么时候应该在 R 中明确指定整数?不指定整数是否有任何潜在的负面影响?
最佳答案
使用 1L
etc 在编程上是安全的,因为它的含义很明确,并且不依赖于任何转换等。
以交互方式编写代码时,很容易注意到错误并在此过程中进行修复,但是如果您正在编写包(即使是基础 R
),明确表示会更安全。
当您考虑相等时,使用浮点数会导致精度问题 See this FAQ .
显式指定整数可以避免这种情况,如 nrow
和 length
,以及 apply
的索引参数返回或需要整数。
关于r - 什么时候应该明确指定整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13558365/