y1q2w3e myround<-function(x){ n<-length(x) for(i in 1:n) ifelse((x%%1)>=0.5,return(x%/%+1),return(x%/%1)) } a<-seq(1,2,0.1) myround(a) 新手求助 这是我自己写的一个四舍五入取整函数 现在输出结果为 [1] 1 1 1 1 1 1 1 1 1 1 2 请问这是为什么?
suckbunny 有很多问题啊: 1、你得先搞清楚ifelse是否支持向量化。如果支持那么是否for就是多余的。 2、你的for用法是否正确。 3、return是否需要 ff=function(x=1){ for(i in 1:3){x=x+i;return(x)} } ff() ff1=function(x=1){ for(i in 1:3){x=x+i} return(x) } ff1() 4、搞明白了之后看看是否一句</code>ifelse(a%%1>=.5,a%/%1+1,a%/%1)` 就够了。