【发布时间】:2021-04-24 20:01:51
【问题描述】:
我正在尝试编写的函数的目标是执行以下操作
- 随机选择一个介于 0 到 10 之间的数字
N。 - 评估
eq(N) = P。 - 在 0 到 1 之间随机生成一个数字
L。 - 如果
L > P,我们丢弃这个数字,否则,我们将P添加到数字向量中。 - 重复此操作的次数等于我们函数的输入
runs。
尝试运行 neutronrejector 会导致几个错误:
Error: unexpected '=' in:
" U <- U+1
if(U ="
> }
Error: unexpected '}' in " }"
> }
Error: unexpected '}' in "}"
这些是错误消息。我的代码如下。谁能看看这个,看看我做错了什么?我对用 R 编写函数完全陌生,我更习惯于使用预设包。
eq = function(x){x*(exp(-x/1.4))}
values <- c()
U <- 0
neutronrejector = function(runs){
repeat{
N = runif(1, min=0, max=10)
P = eq(N)
L = runif(100, min=0, max=1)
ifelse(L > P, , values = c(N, values))
U = U+1
if(U = runs) break
}
}
谢谢!
【问题讨论】:
-
使用
==来测试相等性
标签: r montecarlo