首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中的迭代,用for-循环的奇怪结果

R中的迭代,用for-循环的奇怪结果
EN

Stack Overflow用户
提问于 2015-11-14 16:16:50
回答 1查看 144关注 0票数 1

我在R中编写了一些代码,以确定给定任何公差的ai的最优估计量。到目前为止,我想出了如下结论:

代码语言:javascript
运行
复制
iter<- function (ai, k, tolerance){
  at = ai*(1-ai^2*R[k]^ai*(log(R[k]))^2/(1-R[k]^ai)^2)/
(1 - (ai^2*R[k]^ai*(log(R[k]))^2)/(1-R[k]^ai)^2 + ai*(H(k) 
- 1/ai - R[k]^ai*log(R[k])/(1-R[k]^ai)))
  while((at-ai) > tolerance) {
    ai = at
    at = ai*(1-ai^2*R[k]^ai*(log(R[k]))^2/(1-R[k]^ai)^2)/
(1 - (ai^2*R[k]^ai*(log(R[k]))^2)/(1-R[k]^ai)^2 + ai*(H(k) 
- 1/ai - R[k]^ai*log(R[k])/(1-R[k]^ai)))
    a0 = at
  }
  return(at)
}

x<- iter(ai = H(k), k, tolerance = 0.000001)

其中RH是每个k的已知变量,也是ai的一个初始估计量,即H(k)。这段代码对于k的任何值都很好,例如,

代码语言:javascript
运行
复制
x<- iter(ai = H(k), 21, tolerance = 0.000001)

结果很好。但是,我的问题是,当我试图将其嵌入到for -循环中时(我实际上希望得到一个向量x[k],其中计算了k的每一次迭代),即:

代码语言:javascript
运行
复制
for (k in seq (along = 1: (n-1)){
x<- iter(ai = H(k), 21, tolerance = 0.000001)
}

这段代码没有给出向量,而是给出了x的一个值。这对我来说没有多大意义,因为我试图为每个可能的x分配一个值。我在这里错过了什么?

一如既往,任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-14 16:35:51

因为您想要向量,所以x应该是向量。

代码语言:javascript
运行
复制
x<-numeric(n-1)
for (k in seq (along = 1: (n-1)){
    x[k]<- iter(ai = H(k), 21, tolerance = 0.000001)
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33710484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档