Help us understand the problem. What is going on with this article?

【R】 意外と知らなかったif false

if falseの実装(真偽式のある場合)

条件式をif構文に直接記述する場合、!=のように否定演算子!を使えばいいのは有名だが、

> if(1 != 2) {
    print("FALSE")
  }
[1] "FALSE"

こういう書き方もできる。

> if(!(1 == 2)) {
    print("FALSE")
  }
[1] "FALSE"

さらに、この書き方でもやってることは一緒である。

> if((1 == 2) == FALSE) {
    print("FALSE")
  }
[1] "FALSE"

if falseの実装(logical型データの場合)

論理型データに直接否定演算子!を付することでスマートに記述できる。

> logi <- FALSE
> if(!logi) {
    print("FALSE")
  }
[1] "FALSE"

より直感的な記述法を使うこともできる。

> logi <- FALSE
> if(logi == FALSE) {
    print("FALSE")
  }
[1] "FALSE"

さらに、真偽式の場合も同様に!=を使うことができる。

> logi <- FALSE
> if(logi != TRUE) {
    print("FALSE")
  }
[1] "FALSE"

より複雑な判定式(複数条件)

条件式が複雑になり、さらにif falseを組み合わせるとなれば、さらにスマートに書く必要がある。
そこで、判定式の結果をlogical型データとしてオブジェクトに保存して、それに対して否定演算子!を直接付するほうが、コードを見返すときや修正するときに便利である。

num <- 100

logi.range <- 0 <= num && num < 1     # 0以上1未満の判定
logi.not.numeric <- !is.numeric(num)     # 数値型以外=TRUE
logi2 <- logi.range || logi.not.numeric  # 数値型以外または0以上1未満 = TRUE, 数値型で0~1に含まれていない = FALSE

if(!logi2) {
  print("numは0以上1未満でない数値型データである")
}
[1] "numは0以上1未満でない数値型データである"
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした