Ошибка gillnets / gillnetfit: нечисловой аргумент… неверный тип (список) для переменной… - PullRequest
0 голосов
/ 25 ноября 2018

Когда я запускаю код, я получаю ошибку:

Ошибка в объективе * msizes: не числовой аргумент для двоичного оператора.

Вот ссылки наобзор пакета кода, который я использую, и фактический код (функция только для кода анализа данных жаберной сети): https://www.stat.auckland.ac.nz/~millar/selectware/R/gillnets/gillnetfunctions.pdf (обзор), https://www.stat.auckland.ac.nz/~millar/selectware/R/gillnets/gillnetfunctions.R (код, который я использую).

Ниже приведен набор данных, первый столбец должен содержать классы длины.Второй и последующие столбцы содержат числа, пойманные в сетках разных размеров.Эти столбцы расположены в порядке увеличения размера сетки.Далее идет код для векторных данных для размеров сетки.Тогда мой фактический код для функции.Во время работы активны следующие пакеты: magrittr, dplyr, tidyr, plotrix, lattice, FSA, tidyverse, glm2 и msm.После завершения функции gillnetfit я запускаю приведенное ниже уравнение, и оно возвращает эту ошибку:

Ошибка в объективе * msizes: не числовой аргумент для двоичного оператора.

У меня естьиспользовал несколько уравнений со страницы обзора, он возвращает ту же ошибку

Набор данных (AKA svcp2 во входном коде):

svcp2 <- structure(list(Length_bin = c(450L, 575L, 600L, 625L, 650L, 675L, 
700L, 725L, 750L, 775L, 800L, 825L, 850L, 875L, 900L, 925L, 950L, 
975L, 1000L, 1025L, 1050L, 1150L), X3.00 = c(0L, 8L, 11L, 13L, 
1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L), X4.00 = c(1L, 0L, 0L, 1L, 0L, 1L, 1L, 6L, 10L, 19L, 
35L, 42L, 45L, 40L, 27L, 24L, 10L, 3L, 3L, 2L, 0L, 0L), X4.25 = c(0L, 
0L, 0L, 3L, 1L, 1L, 2L, 5L, 11L, 28L, 46L, 52L, 53L, 39L, 31L, 
23L, 9L, 8L, 1L, 0L, 0L, 1L), X4.50 = c(0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 1L, 0L, 3L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L
), X5.00 = c(0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 4L, 11L, 
15L, 23L, 27L, 28L, 21L, 19L, 10L, 2L, 1L, 0L)), class = "data.frame",
row.names = c(NA, -22L))

Вектор размера сетки

meshsizes <- c(3, 4, 4.25, 4.5, 5)

Функции должны быть получены из здесь .Сделайте, например.

source("https://www.stat.auckland.ac.nz/~millar/selectware/R/gillnets/gillnetfunctions.R")

Окончательное уравнение, которое возвращает ошибку

gillnetfit(svcp2, meshsizes) 

1 Ответ

0 голосов
/ 27 ноября 2018

Ваш svcp2 является data.frame.
В соответствии с документацией, к которой вы привязаны, он должен быть матрицей, хотя документы и код, по-видимому, не полностью синхронизированы.В коде первый аргумент называется svcp2, в то время как в документах он называется data, но смысл все еще ясен.

data - Матрица, содержащая данные об улове ... https://www.stat.auckland.ac.nz/~millar/selectware/R/gillnets/gillnetfunctions.pdf

Решение, таким образом, просто

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