在R语言中,外部不适用于Mahalanobis

63lcw9qa  于 2022-12-20  发布在  R语言
关注(0)|答案(1)|浏览(194)

我想用R语言绘制等值线。为此,我尝试用函数outter准备数据,但它不能正常工作。
有人能指出问题吗?

iris[c(1,51, 101),]
x <- seq(0, 4, length=50)
y <- seq(0, 4, length=50)

seto<-subset(iris[1:50,],select=-Species)
virgi<-subset(iris[101:150,],select=-Species)
seto.m<-apply(seto[1:45,],2,mean)
virgi.m<-apply(virgi[1:45,],2,mean)
seto.v<-var(seto[1:45,])
virgi.v<-var(virgi[1:45,],)

fn <- function(x, y) mahalanobis(c(x, y), seto.m[1:2], seto.v[1:2, 1:2])
fn(3, 4) # works properly

z <- outer(x, y, fn) # doesn't work

我收到一个错误消息“x %*% cov中的错误:不一致的论点”我认为矩阵和向量的维数是一致的,尽管......
我用了一个函数

fn <- function(x, y) x^2+y^2

而且成功了

omhiaaxx

omhiaaxx1#

outer中的函数必须矢量化。如果不是,请使用Vectorize将其转换为矢量化。

z <- outer(x, y, Vectorize(fn))

相关问题