2014-10-10 2 views
1

У меня есть некоторый код в моем файле RMarkdown, что я вязать:Почему выходной сигнал ifelse?

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. Как я могу избежать этого?

Спасибо!

ответ

2

Пробег: wdir <- ifelse(Sys.info()[1]=="Linux", "/path/1", "/path/2"). Причина, по которой печатается вывод, заключается в том, что если вы не присвойте вывод ifelse некоторой переменной, она просто распечатает ее на экране. Это похоже на письмо a <- 1 + 2 vs 1 + 2.

+0

Спасибо! Это имеет смысл сейчас. – variable

+1

Я хотел добавить, возможно, вы запутались в структуре 'if..else..', которая не создавала бы выход (поскольку это не функция, подобная' ifelse() '). Итак, 'if (Sys.info() [1] ==" Linux ") wdir <-" path/1 "else wdir <-" path/2 "' будет работать тоже – konvas

Смежные вопросы