我得到奇怪的行为,其中矩阵维度没有按预期工作,这是一个玩具示例
n <- 10
delt <- 0.00001
s <- n/delt + 1
print(s)
s = 1000001
x <- matrix(0, nrow = s, ncol = 2)
dim(x)
1000000 2
但是,如果我输入
x <- matrix(0, nrow = 1000001, ncol = 2)
dim(x)
我得到了我期望的1000001 2
答案 0 :(得分:2)
这就是原因:
print(s,digits=20L); ## s is slightly under 1000001 after all
## [1] 1000000.9999999998836
as.integer(s); ## truncates to 1000000
## [1] 1000000
documentation on matrix()
没有明确说出来,但nrow
和ncol
参数在内部被强制转换为整数。