存在-不存在矩阵
Posted
技术标签:
【中文标题】存在-不存在矩阵【英文标题】:Presence-absence matrix 【发布时间】:2022-01-20 13:29:30 【问题描述】:我正在尝试根据letsR
包和lets.presab.points()
函数中的示例代码生成网格。
示例代码:
species <- c(rep("sp1", 100), rep("sp2", 100),
rep("sp3", 100), rep("sp4", 100))
x <- runif(400, min = -69, max = -51)
y <- runif(400, min = -23, max = -4)
xy <- cbind(x, y)
PAM <- lets.presab.points(xy, species, xmn = -93, xmx = -29,
ymn = -57, ymx = 15)
summary(PAM)
我的代码:
records <- read.csv("directoryremovedforprivacy.csv")
x <- records$lon
y <- records$lat
xy <- cbind(x, y)
PAM2 <- lets.presab.points(xy, records, xmn = -11.5, xmx = 3,
ymn = 49, ymx = 61)
summary(PAM2)
但是我得到以下错误:
Error in xy[pos, , drop = FALSE] : (subscript) logical subscript too long
In addition: Warning message:
In xtfrm.data.frame(x) : cannot xtfrm data frames
> summary(PAM2)
Error in h(simpleError(msg, call)) :
error in evaluating the argument 'object' in selecting a method for function 'summary': object 'PAM2' not found
【问题讨论】:
【参考方案1】:根据错误信息,问题可能出在lets.presab.points
中的records
。它需要一个物种列表,但你正试图给它一个数据框。因此,在您的示例代码中,species
是一个字符向量,因此您的代码也需要采用相同的格式。所以,你可能需要做这样的事情(虽然我不确定你的records
数据的格式是什么):
library(letsR)
PAM2 <- lets.presab.points(xy, records$species, xmn = -11.5, xmx = 3,
ymn = 49, ymx = 61)
species
需要与xy
长度相同。
【讨论】:
以上是关于存在-不存在矩阵的主要内容,如果未能解决你的问题,请参考以下文章
GLSL 和 GLM 之间的矩阵数学不一致,或者是不是存在“坏”视图矩阵之类的东西
[Matlab]协方差矩阵计算使用cov函数的结果与自编程序结果存在不一致
2022-01-20: 矩形区域不超过 K 的最大数值和。 给你一个 m x n 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 k 的最大数值和。 题目数据保证总会存在一
opencv 报错:Error: Assertion failed (data) in cv::Mat::at, file ... mat.inl.hpp, line 897(访问了不存在矩阵的像素)