【发布时间】:2020-02-02 04:52:25
【问题描述】:
我不明白我的代码循环运行有什么问题。请帮忙
P10<-numeric(2000)
for(i in 1:2000){
r <- rnorm(10, 0.03, 0.005)
P10[i] <- 20 * exp(cumsum(r))
}
Warning in P10[i] <- 20 * exp(cumsum(r)): number of items to replace is not
## a multiple of replacement length
【问题讨论】:
-
不确定您期望的输出应该是什么样子。例如,如果将 P10[i] 重命名为 P,则脚本运行时不会出现警告。
-
嗨 wolsx,如果您能提供具有预期输出的最小示例,这将有所帮助,请参阅 stackoverflow.com/questions/5963269/…
-
不清楚你想在这里做什么。发生警告是因为您试图将
exp(cumsum(r))创建的 10 个项目的列表分配到单个条目中。 -
这是解决此问题时的建议。我假设您希望
P10[i]包含一个数字。手动运行:i <- 1; r <- rnorm(10, 0.03, 0.005),现在看看r,它应该是一个数字向量(长度为 10)。现在运行20 * exp(cumsum(r)),它仍然是一个数字向量(长度为10),已转换。现在回想一下您对P10[i]的期望,它应该是一个数字。您需要对 10 个数字的向量进行什么处理? -
我想通了!谢谢大家
标签: r