にちにちメモ

天文系大学院生のブログ。日々の生活の中で忘れがちなこと/忘れたくないことをメモ。

Rで標準入力を取り込む

Rでプログラムを走らせているときに標準入力(キーボード)を
変数に代入したくなったので、やり方をメモ。

 

大きく2つある。

  • readline()
    標準入力から受け取った値(データ)を返す。
    ()の中には、入力待ちのときに表示する文字列を入れられる。
    例:
    > you <- readline("Who are you?")
     Who are you? schngtm
      (↑入力待ち状態になるため名前を入力)
    > you (変数youの内容を表示)
     [1] "schngtm " (←名前が表示された)
  • menu()
    メニュー選択。選択肢Aを選ぶときは1を返す、選択肢Bを選ぶときは2……といった
    場合分けに使える。
    最初の引数では選択肢をベクトルの形で指定、次のtitleオプションでは
    このメニューのタイトルとして表示する文字列を指定できる。
    また、menu()関数は0を入力すると0を返して終了する。
    例:
    > menu(c("omlet", "hamburger steak", "chocolate"), title="Which do you like the best?")
    Which do you like the best?
    1: omlet
    2: hamburger steak
    3: chocolate
    #(入力待ち→1と打つ)
    [1] 1
    入力待ちの時に打てるのは0と選択肢の数字のみ。
    入力された数字を返すので、それをもとに条件分岐処理をすれば良い。

 

参考:
R-Source http://cse.naro.affrc.go.jp/takezawa/r-tips/r/36.html