Ошибка в журнале (obs $ y): нечисловой аргумент математической функции - PullRequest
0 голосов
/ 06 июня 2019

Я использую пакет 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

Спасибо за помощь!

1 Ответ

1 голос
/ 06 июня 2019

Проблема в том, что функция не понимает тиблы. Вы можете сделать

fit <- all_easylinear(data=as.data.frame(odcor_gr), 
                      grouping="label",
                      time="timeminutes", y="repcor")

В частности, функция пытается извлечь данные в столбцах с кодом, подобным odcor_gr[, "timeminutes"], который для data.frames будет возвращать числовой вектор, но для тибблов это возвращает другой тиббл, а не числовой вектор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...