因此,当我在Rmarkdown
中编写以下代码时,我收到了一个特定的错误:
# Install caret.
install.packages("caret", repos="http://cran.us.r-project.org", dependencies=TRUE)
library(caret)
cross_val <- caret::trainControl(method="repeatedcv", number=10, savePredictions=TRUE)
fit1 <- train(Class ~ Cl.thickness + Cell.size + Cell.shape + Marg.adhesion +
Epith.c.size + Bare.nuclei + Bl.cromatin + Normal.nucleoli + Mitoses,
data = BreastCancer[complete.cases(BreastCancer),],
method = "glm", family="binomial", trControl = cross_val,
tuneLength = 5, control = list(20))
错误是:
Error in train.default(x, y, weights = w, ...) : object 'TrainControl'
not found Calls: <Anonymous> ... eval -> train -> train.formula -> train -> train.default
这是在RStudio中,在64位Windows 10上使用R版本3.3.1。我已经查看了其他一些帖子并尝试了一些事情,到目前为止没有任何变化... .libPaths()
给出我:
[1] "C:/Users/User Name/Documents/R/win-library/3.3"
[2] "C:/Program Files/R/R-3.3.1/library
caret
出现在win-library/3.3
文件夹中。我已经尝试重置RStudio,卸载和重新加载包,更新包以及重新安装包。
当我在RStudio控制台中运行代码时,我没有错误,它运行完成并正确生成结果。但是,如果我在控制台中运行代码然后再次运行Rmarkdown
代码,则会出现其他错误:
Error in library(caret) : there is no package called 'caret' Calls:
<Anonymous> ... withCallingHandlers -> withVisible -> eval -> eval ->
library Execution halted
我现在处于一个死胡同,所以任何提示/线索都会非常感激! (如果有更多信息可以帮助我,请告诉我!)
编辑1:
我应该注意到,无论我使用trainControl
还是caret::trainControl
,都会发生错误。
答案 0 :(得分:0)
我遇到了这个问题,在尝试在另一台PC上重现它的过程中,我做了一个有趣的发现。一个简单的可复制示例:
```{r}
library(caret)
set.seed(1)
train.control <- trainControl(method = "cv", number = 10)
#Train the model
step.model <- train(Fertility~., data = swiss,
method = "leapBackward",
tuneGrid = data.frame(nvmax = 1:5),
trControl = train.control
)
step.model$results
```
如果将其作为块运行,它将返回5x7的性能统计表。
尝试编织文档,我会收到一个错误:
Error in trainControl(method = "cv", number = 10) : could not find function "trainControl" Calls: <Anonymous> ... handle -> withCallingHandlers -> withVisible -> eval -> eval Execution Halted
当我尝试重现它时,我使用了以下YAML标头,并未成功编织:
---
title: "Unable to Knit"
output: html_document
---
当我在新的PC上运行它时,我的YAML标头已经成功并成功编织:
---
title: "Unable to Knit"
output:
html_document:
df_print: paged
---
我返回了第一台PC,并带有成功的YAML标头,并成功编织
TL; DR:更改您的YAML标头,然后重试