R中带有for的不可理解错误;楠

R中带有for的不可理解错误;楠,r,R,我执行一个代码,用于概率模拟器,生成一个错误。对于Instant,代码可以是下一个: m<-replicate(101,NaN) for(i in seq(0,1, by=0.01)){ m[(i*100)+1]<-i+1 } print(m) 感谢您的帮助您可以通过四舍五入索引值来解决此问题: for(i in seq(0,1, by=0.01)){ m[round((i*100)+1)]<-i+1 } for(i在seq(0,1,by=0.01)中){ m[

我执行一个代码,用于概率模拟器,生成一个错误。对于Instant,代码可以是下一个:

m<-replicate(101,NaN)
for(i in seq(0,1, by=0.01)){

  m[(i*100)+1]<-i+1
}

print(m)

感谢您的帮助

您可以通过四舍五入索引值来解决此问题:

for(i in seq(0,1, by=0.01)){
  m[round((i*100)+1)]<-i+1
}
for(i在seq(0,1,by=0.01)中){

m[round((i*100)+1)]您可以通过将索引值舍入来解决此问题:

for(i in seq(0,1, by=0.01)){
  m[round((i*100)+1)]<-i+1
}
for(i在seq(0,1,by=0.01)中){

m[round((i*100)+1)]这个问题是本文讨论的影响的一个变体:

数值舍入错误导致
m[(i*100)+1]中的非整数索引数
请尝试改用整数:

for(i in seq(0,100)){    
  m[i+1] <- i/100 + 1
}
用于(seq(0100)中的i){

m[i+1]这个问题是本文讨论的影响的一个变体:

数值舍入错误导致
m[(i*100)+1]中的非整数索引数
请尝试改用整数:

for(i in seq(0,100)){    
  m[i+1] <- i/100 + 1
}
用于(seq(0100)中的i){

m[i+1]毕竟没有那么奇怪。这是浮点算术。精度是有限的。我称之为奇怪,因为
as.integer
不能解决这个问题。@RHertel,对不起,我错过了
as.integer
只是去掉小数点后的任何内容,所以2.999999…将是2。是的,这并不奇怪。毕竟没有那么奇怪。这是f浮点数算术。精度是有限的。我称之为奇怪,因为
as.integer
不能解决这个问题。@RHertel,对不起,我错过了
as.integer
只是去掉小数点后的任何内容,所以2.9999999…将是2。是的,毕竟这并不奇怪。