当 Knitting ans Rmarkdown (R Studio) 文档包含 R 代码块时,块返回
line 192 Error in stats::hclust(dd, method=hc.method) :
must have n>= 2 objects to cluster Calls: <Anonymous> ... eval -> ggcorrplot -> .hc_cormat_order -> <Anonymous>
当在 R (R Studio) 中运行并从 Markdown 中运行时,同一段代码运行良好。这只发生在编织期间!
块中没有进行重大更改的代码是从 R 文件复制/粘贴。添加cache=FALSE
和echo=FALSE
。没有帮助。确实将每一行放在单独的块中。这表明错误不library (dplyr)
在线路上,而是在实际ggcorrplot
线路上
library(dplyr)
dfNed_2b <- dfNed_2a %>% dplyr:: select(grep("GDP", names(dfNed_2a)), grep("GDY", names(dfNed_2a)), grep("GNP", names(dfNed_2a)))
dfNed_2b[is.na(dfNed_2b)] <- 0
corrNed_2b <- round(cor(dfNed_2b), 4)
library(ggcorrplot)
ggcorrplot(corrNed_2b, hc.order = TRUE,
type = "lower",
lab = TRUE,
lab_size = 2,
method="circle",
tl.cex=7,
colors = c("orangered1", "white", "darkolivegreen1"),
title="Correlogram GDP, GDY en GNP indicatoren",
ggtheme=theme_minimal)
从 R 代码中,我得到了一个很好的相关图。Rmd 中的 knit 返回:
line 192 Error in stats::hclust(dd, method=hc.method) :
must have n>= 2 objects to cluster Calls: <Anonymous> ... eval -> ggcorrplot -> .hc_cormat_order -> <Anonymous>
错误似乎指的是块中的第一行,而实际错误ggcorrplot
在行上
====================================================错误似乎仍然存在。将 Rmd 更改为仅使用外部 R 脚本 Rmd: ### Correlatie plot van de GDP, GDY en GNP indicatoren
{r cache=FALSE}
knitr::read_chunk('6e_corr_dfNed_2b.R')
```{r 6e_corr_dfNed_2b}
```
R: ## ---- 6e_corr_dfNed_2b library(dplyr) dfNed_2c <- dfNed_2b %>% dplyr::select(grep("GDP", names(dfNed_2b)), grep("GDY", names(dfNed_2b)), grep (“GNP”,名称(dfNed_2b)))dfNed_2c [is.na(dfNed_2c)] <- 0 head(dfNed_2c,2)库(ggplot2)库(尺度)库(ggcorrplot)corrNed_2c <-round(cor(dfNed_2c) , 4) ggcorrplot(corrNed_2c, hc.order = TRUE, type = "lower", lab = TRUE, lab_size = 2, method="circle", tl.cex=7, colors = c("orangered1", "white" , "darkolivegreen1"), title="Correlogram GDP, GDY en GNP indicatoren",ggtheme=theme_minimal)
我唯一能想到的是,Knitr 确实喜欢在前一个块中使用的库(dplyr)。认为缓存已解决=FALSE