问题描述
此R
代码:
Iris <- data.frame(rbind(iris3[,1],iris3[,2],3]),Sp = rep(c("s","c","v"),rep(50,3)))
train <- sample(1:150,75)
z <- MASS::lda(Sp ~ .,Iris,prior = c(1,1,1)/3,subset = train)
MASS::predict.lda(z)
给出以下错误消息:
Error: 'predict.lda' is not an exported object from 'namespace:MASS'
predict.lda
的{{1}}函数已被记录,但显然不是包名称空间的一部分。为什么不呢?
此问题很重要,因为我需要在自己的软件包中使用MASS
,并且此错误使CRAN检查失败。
解决方法
我们可以加载软件包,然后使用predict
library(MASS)
predict(z)
或指定:::
。根据{{1}}
访问命名空间中的导出变量和内部变量,即R对象(包括延迟加载的数据集)。
?":::"
或者另一个选择是从名称空间获取功能
MASS:::predict.lda(z)
#$class
# [1] v s s s s c s v s v v v v c v v c v c s s s s c c v c v v c s s v c s s c v s c v v s c s c s c c s v c s s c s s c c c s c s v
#[65] v v v s c s c v v s s
#Levels: c s v
#$posterior
# c s v
#107 3.513603e-03 1.352029e-37 9.964864e-01
#37 2.749629e-26 1.000000e+00 5.088976e-50
# ...