我在用paste的时候,出现下面的问题,研究了半天不知道到底是什么原因?程序为:
n_sample=function(beta){
num=function(n){
l=pt(qt(0.025,n-1,lower.tail=F),n-1,ncp=sqrt(n)*0.5)
}
i=2
while(num(i)>(1-beta/100)){
i=i+0.1}
i}
x=seq(50,99,1)
y=rep(0,length(power))
for (i in 1:length(x)){
y=n_sample(x)
}
nmark=y[c(1,seq(6,50,5),50)]
label=c("50%","55%","60%","65%","70%","75%","80%","85%","90%","95%","99%")
leg=paste(label,nmark,sep="--")
***************************************************************************************
nmark的输出结果为:
nmark
[1] 17.4 19.4 21.6 24.0 26.7 29.8 33.4 37.9 44.0 54.0 75.5
leg输出的结果却为:
leg
[1] "50%--17.4" "55%--19.4" "60%--21.6"
[4] "65%--24.0000000000001" "70%--26.7000000000001" "75%--29.8000000000002"
[7] "80%--33.4000000000002" "85%--37.9000000000003" "90%--44.0000000000004"
[10] "95%--54.0000000000005" "99%--75.5"
*************************************************************************************
问题:为什么中间红色的那些数据会多出那么多位的小数,其中y的结果只有一位小数来着?
请大神赐教!先谢谢啦~