R 在循环中使用具有2个输入的函数以及输入的组合来创建数据帧
我创建了一个自定义函数,用于根据两个输入计算值R 在循环中使用具有2个输入的函数以及输入的组合来创建数据帧,r,function,for-loop,R,Function,For Loop,我创建了一个自定义函数,用于根据两个输入计算值 # function info.theta <- function(theta, delta) { P = 1/(1+exp(-1*(theta-delta))) Q = 1 -P 1*P*Q } #函数 info.theta您可以使用outer获取值矩阵: outer(thetas,deltas,info.theta) 您可以使用outer获取值矩阵: outer(thetas,deltas,info.theta
# function
info.theta <- function(theta, delta) {
P = 1/(1+exp(-1*(theta-delta)))
Q = 1 -P
1*P*Q
}
#函数
info.theta您可以使用outer
获取值矩阵:
outer(thetas,deltas,info.theta)
您可以使用outer
获取值矩阵:
outer(thetas,deltas,info.theta)
对原始功能的轻微更改:
info.theta <- function(theta, delta) {
P = 1/(1+exp(-1*(theta-delta)))
Q = 1 -P
data.frame(theta=theta,delta=delta, information=1*P*Q)
}
对原始功能的轻微更改:
info.theta <- function(theta, delta) {
P = 1/(1+exp(-1*(theta-delta)))
Q = 1 -P
data.frame(theta=theta,delta=delta, information=1*P*Q)
}
完美的希望随着我编码的进步,我能更好地表达我的目标,并且在来这里之前能够更容易地解决这些问题。”“扩展.grid”似乎是一个非常简单的修复方法,如果我能更清楚地表达我的问题,我可以找到它。是的,我在上面添加了一条评论,但我会在这里添加它以供参考。尽可能地避免循环。使用apply()
函数组,可以生成更干净、更有效、更快速的代码。此外,如果您想变得更有趣,您可能会在函数中包含expand.grid()
片段,这样它只需要接收两个向量,并根据您的喜好输出一个data.frame.Perfect。希望随着我编码的进步,我能更好地表达我的目标,并且在来这里之前能够更容易地解决这些问题。”“扩展.grid”似乎是一个非常简单的修复方法,如果我能更清楚地表达我的问题,我可以找到它。是的,我在上面添加了一条评论,但我会在这里添加它以供参考。尽可能地避免循环。使用apply()
函数组,可以生成更干净、更有效、更快速的代码。另外,如果你想变得更有趣,你可以在函数中加入expand.grid()
片段,这样它只需要输入两个向量,然后输出一个你喜欢的data.frame。是的,一旦事情开始爆发,循环就不是超级有趣了。如果你不得不比较n
事物呢?是的,一旦事物开始爆炸,循环就不是超级有趣了。如果您必须比较n
事物,该怎么办?
td_grid<-expand.grid(thetas, deltas)
info.theta(td_grid[,1],td_grid[,2])
theta delta information
1 -4.0 -4.0 0.2500000000
2 -3.5 -4.0 0.2350037122
3 -3.0 -4.0 0.1966119332
4 -2.5 -4.0 0.1491464521
5 -2.0 -4.0 0.1049935854
6 -1.5 -4.0 0.0701037165
7 -1.0 -4.0 0.0451766597
8 -0.5 -4.0 0.0284530239
9 0.0 -4.0 0.0176627062
10 0.5 -4.0 0.0108662297
11 1.0 -4.0 0.0066480567