在R studio中编织时使用插入符号对象的问题

时间:2018-02-21 03:12:18

标签: r rstudio r-markdown r-caret

因此,当我在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,都会发生错误。

1 个答案:

答案 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标头,然后重试