readline()による入力の読み込み
CoddyのRジャーニー「基礎」セクションの一部 — レッスン 29/78。
これまで、出力を表示する方法を学びました。今度は、ユーザーからの入力を読み取ってプログラムをインタラクティブにする番です。readline() 関数を使用すると、ユーザーが入力した内容を取り込むことができます。
name <- readline()
cat("Hello,", name, "\n")このコードが実行されると、Rはユーザーが何かを入力してEnterキーを押すのを待ちます。入力された内容はすべてname変数に格納されます。ユーザーが"Alice"と入力した場合、出力はHello, Aliceとなります。
重要な注意点:readline() は、ユーザーが数値を入力しても常に文字列を返します。もし誰かが "25" と入力した場合、それはテキストの "25" として保存され、数値の 25 ではありません。型の変換方法については、次のレッスンで学びます。
readline() を複数回使用することで、複数の入力を読み込むことができます:
first <- readline()
second <- readline()
cat("First:", first, "\n")
cat("Second:", second, "\n")各 readline() の呼び出しは、ユーザーからの個別の入力行を待機します。
cat() を使用してテキストと変数を組み合わせる場合、カンマで区切られた各項目の間にはスペースが入ります。単語に句読点を直接付ける場合など、スペースなしでテキストを結合したいことがあります。そんな時に paste0() が便利です。これは、項目の間にセパレータ(区切り文字)なしで文字列を連結します:
city <- readline()
cat("Welcome to", paste0(city, "!"), "\n")ここでは、paste0(city, "!") は city の値と "!" をスペースなしで結合します。そのため、ユーザーが "Paris" と入力すると、出力は Welcome to Paris! となります。
チャレンジ
簡単2行の入力を読み取り、パーソナライズされた挨拶メッセージを表示してください。
以下の2つの入力を受け取ります:
- 名前
- 都市名
readline() を使用して両方の入力を読み取り、次の形式でメッセージを表示します:
Welcome, [name] from [city]!cat() を使用して出力を生成してください。最後に感嘆符を含め、改行文字 \n を忘れないようにしてください。
例えば、入力が Emma と Paris の場合、出力は以下のようになります:
Welcome, Emma from Paris!自分で試してみよう
# 入力を読み込む
con <- file("stdin", "r")
name <- suppressWarnings(readLines(con, n = 1))
city <- suppressWarnings(readLines(con, n = 1))
# TODO: 挨拶メッセージを表示するために、以下にコードを記述してください
# cat() を使用して次のように出力します: Welcome, [name] from [city]!
# 最後に改行文字 \n を忘れないでくださいこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。