r - 对 R 中向量的不同元素应用不同的函数

标签 r optimization apply

apply 很容易,但这对我来说是一个简而言之:

在多参数回归中,优化器用于找到参数函数的最佳拟合,例如 x1,x2 数据。通常,如果优化器尝试优化转换后的参数(例如,使用诸如 DEoptim、nls.lm 之类的 R 优化器),并且特定于函数的优化器会更快
根据我的经验,对来自一个参数函数的不同参数进行不同变换会更好。

我希望将 x.trans (c.f. below) 中的不同函数应用于 x.val 中不同但在其位置对应的元素:

一个可以使用的模拟示例。

#initialise
x.val <- rep(100,5);      EDIT: ignore this part ==>  names(x.val) <- x.names
x.select <- c(1,0,0,1,1)
x.trans <- c(log10(x),exp(x),log10(x),x^2,1/x)

#select required elements, and corresponding names
x.val = subset(x.val, x.select == 1)
x.trans = subset(x.trans, x.select == 1)

# How I tried: apply function in x.trans[i] to x.val[i]
...

有任何想法吗? (我尝试过 apply 和 sapply 但无法获取存储在 x.trans 中的函数)

最佳答案

您必须改用它:

x.trans <- c(log10,exp,log10,function(x)x^2,function(x)1/x)

然后这个:
mapply(function(f, x) f(x), x.trans, x.val)

关于r - 对 R 中向量的不同元素应用不同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17490297/

相关文章:

R:如何添加 L1 范数线以从 glmnet 绘图

r - 处理TTR中的多列时间序列

r - 为什么在 R 中创建线性多项式模型时需要 I() "AsIs"?

php - 如何动态调整图像大小

r - 在指定 x 和 mu 时对 df 的多行执行 t 检验并将结果附加为一列

r - 在 R 中的自定义函数中将参数传递给 data.table 的简单可重现示例

java - 需要对 Dijkstra 进行优化(独特算法)

mysql - 针对大型查询优化 MySql 数据库

r - 避免对 cumsum 使用 for 循环

python - Pandas 分组和计数