【问题标题】:Why is ifelse generating print output?为什么 ifelse 会生成打印输出?
【发布时间】:2014-10-10 14:31:32
【问题描述】:

我在我的 RMarkdown 文件中有一些我编织的代码:

ifelse(Sys.info()[1]=="Linux",
       wdir <- "/path/1",
       wdir <- "/path/2")
setwd(wdir)

除了它应该是沉默的。我把它放在一个块里

```{r prepare.data,echo=F,warning=FALSE,message=FALSE,error=FALSE}

我不想从中生成任何输出,但是当我编织时,我在输出中得到了这个:

##                                          sysname 
## "/path/1"

我已经在控制台中尝试了该代码片段,它正在生成该打印输出。

我的问题是: 1. 为什么 ifelse 打印这个输出? 2. 如何避免?

谢谢!

【问题讨论】:

    标签: r if-statement


    【解决方案1】:

    试试wdir &lt;- ifelse(Sys.info()[1]=="Linux", "/path/1", "/path/2")。打印输出的原因是,如果您不将ifelse 输出分配给某个变量,它只会将其打印在屏幕上。这就像写a &lt;- 1 + 2 vs 1 + 2

    【讨论】:

    • 谢谢!现在这是有道理的。
    • 我想补充一下,也许你对if..else.. 结构感到困惑,它不会生成输出(因为它不是像ifelse() 这样的函数)。所以if(Sys.info()[1] == "Linux") wdir &lt;- "path/1" else wdir &lt;- "path/2" 也可以工作
    猜你喜欢
    • 1970-01-01
    • 2015-02-23
    • 2012-01-15
    • 1970-01-01
    • 2022-11-21
    • 2022-12-17
    • 2016-02-02
    • 2015-10-10
    • 1970-01-01
    相关资源
    最近更新 更多