gillnets / gillnetfit错误:非数字参数…变量的类型(列表)无效……

时间:2018-11-25 03:46:10

标签: r

运行代码时出现错误:

  

镜头错误* msizes:二进制运算符的非数字参数。

这里是我正在使用的代码包和实际代码(仅适用于gillnet数据分析代码的功能)概述的链接: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和m​​sm。完成gillnetfit函数后,我运行下面的公式,它返回此错误:

  

镜头错误* msizes:二进制运算符的非数字参数。

我在概述页面中使用了多个方程式,它返回相同的错误

数据集(在输入代码中也称为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)

函数必须来自here。做例如。

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

使用最终公式返回错误

gillnetfit(svcp2, meshsizes) 

1 个答案:

答案 0 :(得分:0)

您的svcp2是一个data.frame。
根据文档,您链接到它的文档必须是矩阵,尽管文档和代码似乎并不完全同步。在代码中,第一个参数称为svcp2,而在文档中,第一个参数称为data,但含义仍然很清楚。

  

data-包含捕获数据的矩阵…   https://www.stat.auckland.ac.nz/~millar/selectware/R/gillnets/gillnetfunctions.pdf

解决方案因此很简单

gillnetfit(as.matrix(svcp2), meshsizes)