以错误的方式访问df列会导致空向量,“min / max没有非缺失参数,返回Inf / -Inf”

时间:2014-02-11 01:46:40

标签: r invalid-argument

我是R的初学者,负责水质数据。请原谅我的格式错误。我想在我的数据集上运行“nls”。运行脚本:

testingQModel<-nls(GR ~ GRm * (1-Kq/Q), data = testingQ, start = list(Kq = min(testingQ$Q), GRm = max(testingQ$GR)))

我收到以下错误:

警告讯息: 1:在min(x)中:min没有非缺失参数;返回Inf 2:在max(x)中:max没有非缺失参数;返回-Inf

数据集没有NA并且都是数字。我还使用range(testingQ, na.rm = TRUE)运行range(testingQ, na.rm = FALSE)只是为了试一试,它可以在数据集中返回最大值和最小值。我不知道还有什么可以尝试的。 期待有人的解决方案!感谢。

2 个答案:

答案 0 :(得分:1)

总结你似乎已经解决并写在评论中的内容:

  • 问题与nls或max
  • 无关
  • 问题是由于对数据帧列的访问权限不好,或者语法错误,或者您通过使用这些名称定义变量来掩盖Q,GR的定义
  • 这会给你一个空的向量,这会导致max返回Inf / -Inf
  • 解决方案是修复列访问权限,或者不定义有问题的阴影变量

我的提示: 总结,最大和最小是R的痛苦,因为他们不能很好地处理NA或完全空输入。 因此,请始终注意他们的输入向量以仔细检查是否合理,或者将其输入分配给变量并检查它。

答案 1 :(得分:0)

我同意smci,像min这样的汇总函数在R中很痛苦。

在hablar软件包中有一个解决方案,解决了给定空向量时min / max返回Inf的问题。函数s将空向量(NULL)转换为NA。

问题

void

解决方案

int

免责声明自从我编写了该程序包以来,我对这种解决方案就有偏见。