用户定义的函数作为公式输入

时间:2013-07-19 15:55:43

标签: r

R中的内置函数可用于公式对象,例如

reg1 = lm(y ~ log(x), data = data1)

如何编写我的函数,以便它们可以在公式对象中使用?

fnMyFun = function(x) {
  return(x^2)
}
reg2  = lm(y ~ fnMyFun(x), data = data1)

1 个答案:

答案 0 :(得分:2)

你所拥有的确实有效。一个问题是不同的建模函数以不同的方式处理公式。我认为,只要你返回model.matrix可以理解的东西,你就没事了。这意味着

  1. 该功能是矢量化的;即,给定长度为N的向量,它返回长度为N

  2. 的结果
  3. 必须返回原子矢量或矩阵(但不是列表,或类型raw