【发布时间】:2019-02-02 13:48:10
【问题描述】:
我想在 for 循环中创建评估不同的索引。 这些指数有不同的公式,并不总是需要评估。 f.i. : 我要评估的指标可能是
a=1
b=2
c=5
d=8
IDX1=function(a,b) {result=a+b}
IDX2=function(c,b) {result=c+b}
IDX3=function(d,b) {result=d+b-c}
IDX4=function(a,d) {result=a+d+b+c}
公式并不重要
在数据框中,我有迭代次数和每次循环需要采用的索引(假设我必须为每次迭代评估 2 个索引)
head=c("iter","IndexA","IndexB")
r1=c(1,"IDX1","IDX2")
r2=c(2,"IDX3","IDX4")
r3=c(3,"IDX1","IDX4")
df=as.data.frame(rbind(head,r1,r2,r3))
我想做的是在循环中为每次迭代评估各自的 2 个索引,自动调用正确的公式广告并使用正确的参数提供给它
iter 1 : IndexA=IDX1(args)=3 ; IndexB(args)=IDX2(args)=7
iter 2 : IndexA=IDX3(args)=5 ; IndexB(args)=IDX4(args)=16
iter 3 : IndexA=IDX1(args)=3 ; IndexB(args)=IDX4(args)=16
请不要回答“只需运行所有功能并调用 循环中需要的结果”。
我正在使用大矩阵,内存确实是个问题。我需要评估循环内的函数以减少内存的使用
我相信答案是这个讨论中的一些内容,但我无法理解。
How to create an R function programmatically?
谁能解释一下 1.如何构建一个可以在循环中以编程方式改变的函数? 2. 一旦我有了它,我怎样才能运行公式并得到我想要的结果? 谢谢
【问题讨论】: