楼主: 海∞燕
6473 2

[问答] 请教:R中关于paste函数的问题 [推广有奖]

  • 0关注
  • 1粉丝

本科生

32%

还不是VIP/贵宾

-

威望
0
论坛币
-5 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1394 点
帖子
61
精华
0
在线时间
46 小时
注册时间
2012-9-26
最后登录
2017-4-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我在用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的结果只有一位小数来着?

请大神赐教!先谢谢啦~



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:paste past pas function Sample

沙发
robvsn 发表于 2014-11-7 13:32:35 |只看作者 |坛友微信交流群
计算机存储浮点数是会有这种小误差啦,把paste里的nmark先转成字符串,比如 sprintf('%.1f', nmark)
已有 1 人评分论坛币 收起 理由
李会超 + 12 热心帮助其他会员

总评分: 论坛币 + 12   查看全部评分

使用道具

藤椅
海∞燕 在职认证  发表于 2014-12-12 15:08:13 |只看作者 |坛友微信交流群
robvsn 发表于 2014-11-7 13:32
计算机存储浮点数是会有这种小误差啦,把paste里的nmark先转成字符串,比如 sprintf('%.1f', nmark)
非常感谢,解决啦~

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-26 06:06