楼主: alfine
1411 4

[问答] 新手for循环求助 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

25%

还不是VIP/贵宾

-

威望
0
论坛币
1926 个
通用积分
0
学术水平
2 点
热心指数
5 点
信用等级
0 点
经验
2309 点
帖子
26
精华
0
在线时间
277 小时
注册时间
2012-4-14
最后登录
2020-4-2

楼主
alfine 发表于 2013-12-27 17:25:24 |AI写论文
10论坛币
本人新手,写了个函数想求分位数的切点,程序如下
> by.quantiles=function(n)
+ {
+ pbreaks=rep(0,n+1)
+ for (i in 2:n+1)
+ pbreaks[i]=(i-1)/n
+ pbreaks
+ }
> by.quantiles(4)
运行后得出结果
[1] 0.00 0.00 0.50 0.75 1.00
第二项为什不是0.25,理想中的结果应该是下面的情况啊
[1] 0.00 0.25 0.50 0.75 1.00
百思不得其解,求大家帮助,谢谢!

最佳答案

树袋熊2 查看完整内容

应该是 for (i in 2:(n+1))
关键词:for循环 For quantiles quantile function function 程序
已有 1 人评分热心指数 收起 理由
qoiqpwqr + 1 鼓励积极发帖讨论

总评分: 热心指数 + 1   查看全部评分

沙发
树袋熊2 发表于 2013-12-27 17:25:25
应该是 for (i in 2:(n+1))
已有 1 人评分热心指数 收起 理由
qoiqpwqr + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

藤椅
CRouGD 发表于 2013-12-27 18:23:32
for循环
for(i in 1:(n+1))   在n+1上面+个括号
已有 1 人评分热心指数 收起 理由
qoiqpwqr + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

板凳
qoiqpwqr 发表于 2013-12-27 19:25:37
这种错误我原来也犯过,而且特别难查出来

报纸
yywan0913 在职认证  发表于 2013-12-27 19:28:30
for(i in 1:(n+1))或 for(i in 1:n+1)

另外写for循环的时候最好不要这样写  若for循环后只有一句命令即可循环完   可以在for(i in 1:n+1)后写pbreaks[i]=(i-1)/n    或者用for后{}括起来,否则容易出错或者只循环一次就跳出了。恩,只是个建议。。。
已有 1 人评分热心指数 收起 理由
求证1加1 + 1 鼓励积极发帖讨论

总评分: 热心指数 + 1   查看全部评分

是什么给了你自信

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 18:44