我正在使用软件包growthrates
分析增长曲线,并且遇到了从未见过的奇怪错误。当我运行函数all_easylinear()
时,出现以下错误:
Error in log(obs$y) : non-numeric argument to mathematical function
但是,被称为(y)的对象是数字对象。我完全迷住了。
我尝试使用as.numeric(),但仍然遇到相同的错误。
示例:
#example data
odcor_gr <- tibble(
timeminutes =c(307.428333333333, 327.923333333333,
348.42, 368.915, 389.411666666667, 409.906666666667, 430.401666666667,
430.401666666667, 450.896666666667, 471.391666666667, 491.886666666667,
512.383333333333, 532.878333333333, 553.373333333333, 573.868333333333,
594.363333333333, 614.858333333333, 635.353333333333, 655.848333333333,
676.345, 696.84, 717.335),
repcor = c(0.31164751485, 0.3728024892,
0.436049997975, 0.5087474973, 0.58819499865, 0.671152520925,
0.7614674946, 0.330884997975, 0.361395007425, 0.391364991225,
0.4193099919, 0.45683998785, 0.484987502025, 0.518939988525,
0.552150007425, 0.583132508775, 0.614655039825, 0.64367999325,
0.67689000135, 0.7099650243, 0.75127499865, 0.7855649703),
label = c("Y7092_exp1_0",
"Y7092_exp1_0", "Y7092_exp1_0", "Y7092_exp1_0", "Y7092_exp1_0",
"Y7092_exp1_0", "Y7092_exp1_0", "Y7092_exp1_313.22", "Y7092_exp1_313.22",
"Y7092_exp1_313.22", "Y7092_exp1_313.22", "Y7092_exp1_313.22",
"Y7092_exp1_313.22", "Y7092_exp1_313.22", "Y7092_exp1_313.22",
"Y7092_exp1_313.22", "Y7092_exp1_313.22", "Y7092_exp1_313.22",
"Y7092_exp1_313.22", "Y7092_exp1_313.22", "Y7092_exp1_313.22",
"Y7092_exp1_313.22"))
fit <- all_easylinear(data=odcor_gr,
grouping="label",
time="timeminutes", y="repcor")
这会产生以下错误:
Error in log(obs$y) : non-numeric argument to mathematical function
谢谢您的帮助!
答案 0 :(得分:1)
问题在于该函数无法理解小标题。你可以做
fit <- all_easylinear(data=as.data.frame(odcor_gr),
grouping="label",
time="timeminutes", y="repcor")
具体来说,该函数尝试使用诸如odcor_gr[, "timeminutes"]
这样的代码提取列中的数据,对于data.frames,该列将返回一个数字矢量,但是对于小标题,它将返回另一个小标题,而不是数字矢量。