0

当 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=FALSEecho=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

4

0 回答 0