自动化lm()函数对象未找到错误

时间:2016-02-02 11:55:09

标签: r lm

Error in eval(expr, envir, enclos) : object 'uhatols' not found

我正在尝试自动化一些ols回归。运行此公式时,我不断收到错误 function decodePolyline(encoded) { if (!encoded) { return []; } var poly = []; var index = 0, len = encoded.length; var lat = 0, lng = 0; while (index < len) { var b, shift = 0, result = 0; do { b = encoded.charCodeAt(index++) - 63; result = result | ((b & 0x1f) << shift); shift += 5; } while (b >= 0x20); var dlat = (result & 1) != 0 ? ~(result >> 1) : (result >> 1); lat += dlat; shift = 0; result = 0; do { b = encoded.charCodeAt(index++) - 63; result = result | ((b & 0x1f) << shift); shift += 5; } while (b >= 0x20); var dlng = (result & 1) != 0 ? ~(result >> 1) : (result >> 1); lng += dlng; var p = { latitude: lat / 1e5, longitude: lng / 1e5, }; poly.push(p); } return poly; } (在最后一行)。谁能告诉我为什么?

2 个答案:

答案 0 :(得分:1)

这实现了您的目标。请注意我如何在公式中使用.(表示除y值之外的所有变量)以及data的{​​{1}}参数。

lm

答案 1 :(得分:1)

将分配给c的行更改为:

c <- formula("uhatols ~ x[[1]]")

这是因为:

  1. 这会将当前环境与c关联起来uhatols 在随后的lm电话中找到。

  2. 由于x是data.frame x[[1]]是指第一个。{ 列,而x[1]是指一列数据框和这些 不是一回事。从中可以看出这种关系:

    > identical(x[1], data.frame(e = x[[1]]))
    [1] TRUE
    
  3. 注意:因为test中的最后一个语句是一个语句,例如

    test(y, x)
    

    不会自动显示其输出,但如果已分配,则会正确分配:

    out <- test(y, x)
    out
    

    如果您希望在未分配对test的调用时自动显示输​​出,请将lm(c)正文中的最后一个语句替换为test