为什么我们必须先使用data(spam)
才能运行lda
? spam
是ElemsStatLearn
包中的数据集。
library(ElemStatLearn)
library(MASS) # for lda
spam[5] # is ok
spam.lda = lda(spam ~ . , data = spam) # not ok
data(spam)
spam.lda = lda(spam ~ . , data = spam) # ok
我们甚至可以在spam[5]
运行之前访问data(spam)
。
答案 0 :(得分:7)
对lda
的两次调用都适用于我。 ElemStatLearn
使用lazy loading数据,因此您无需致电data
> packageDescription("ElemStatLearn")[["LazyData"]]
# [1] "yes"
答案 1 :(得分:5)
R包括一系列数据集,主要用于示例。其中一些数据集可直接使用(例如iris
或cars
),在某些程序包中,它们不会自动可用,需要调用data
将它们附加到当前工作空间,例如:来自meuse
包的gstat
。因此,ElemStatLearn
中的体验有效,spam
会自动生效。