代码之家  ›  专栏  ›  技术社区  ›  user1320502

`cat()` inside` if()`语句产生不需要的行为

  •  0
  • user1320502  · 技术社区  · 7 年前

    使用以下示例rmarkdown

    ---
    title: "Untitled"
    output: pdf_document
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = FALSE)
    ```
    
    
    ## R Markdown
    
    ```{r}
    summary(cars)
    
    cat("banaaaaaaa")
    
    cat("banaaaaaaa")
    
    cat("banaaaaaaa")
    
    ```
    
    ```{r}
    if(1 == 0){
    print("this will not print")
    }else{
    summary(cars)
    
    cat("banaaaaaaa")
    
    cat("banaaaaaaa")
    
    cat("banaaaaaaa")
    }
    ```
    

    生成以下pdf

    enter image description here

    如何获取 if 生成与上面的代码块相同的结果?

    1 回复  |  直到 7 年前
        1
  •  1
  •   YOLO    7 年前

    你错过了 print 命令。使用cat命令,需要手动指定新行( \n )命令。尝试以下操作:

    if(1 == 0){
    
        print("this will not print")
    
    } else {
        print(summary(cars))
        cat("banaaaaaaa")
        cat('\n') # just copy paste this
        cat("banaaaaaaa")
        cat('\n')
        cat("banaaaaaaa")
    }
    
         speed           dist       
     Min.   : 4.0   Min.   :  2.00  
     1st Qu.:12.0   1st Qu.: 26.00  
     Median :15.0   Median : 36.00  
     Mean   :15.4   Mean   : 42.98  
     3rd Qu.:19.0   3rd Qu.: 56.00  
     Max.   :25.0   Max.   :120.00  
    banaaaaaaa 
    banaaaaaaa 
    banaaaaaaa