17

次の形式の if 文を書きたいと思います。

a=5
b=2

la<-function(a,b){
if(a>3){a}
else{b}
}

ここで私がやりたいことは、if ステートメントに 1 つのアクションだけでなく、2 つのアクションを含めることです。次に例を示します。

if(a>3){a and c<<-1000}

この場合、'a' を返し、変数 'c​​' に 1000 を書き込みます。

私の質問は、if ステートメントの後に複数のアクションを入れる方法です。

4

1 に答える 1

26

セミコロンを使用する必要があります

if(a>3){c<-1000;a}

最後のステートメントは戻り値です。

編集これは複数のステートメントでも機能します。次のように、改行を使用する場合はセミコロンを省略できます。

if(a>3) {
  c<-1000
  d<-1500
  a
} else {
  e <- 2000
  b
}

編集:これもうまくいくはずifelseです。ただし、ベクトルを操作していることに注意する必要があります。次に例を示します。

x <- sample(10, 100, replace=TRUE)
ifelse(x>3, {y <- 100; y+x}, x)

これは、3 より大きい x の要素にのみ 100 を加算します。

于 2012-12-31T10:57:33.263 に答える