运行代码时出现错误:
镜头错误* 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和msm。完成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)
答案 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)