型変換の基本
CoddyのRジャーニー「基礎」セクションの一部 — レッスン 30/78。
前のレッスンで述べたように、readline() は常に文字列を返します。ユーザーが "25" と入力した場合、数値の 25 ではなく、テキストの "25" を受け取ることになります。テキストでは計算ができないため、これは重要です。
文字列を数値に変換するには、as.numeric() を使用します:
input <- "42"
number <- as.numeric(input)
cat(number + 8, "\n") # 出力: 50ユーザー入力を扱う際には、これが不可欠です。よく使われるパターンを以下に示します:
age_text <- readline()
age <- as.numeric(age_text)
cat("In 10 years, you will be", age + 10, "\n")また、as.character() を使って逆方向に変換することもできます。
number <- 100
text <- as.character(number)
cat("The value is:", text, "\n")数値を文字に変換することは、他のテキストと組み合わせる必要がある場合や、関数が特に文字入力を必要とする場合に便利です。これらの変換関数は、プログラムが必要とするときにいつでもデータ型間を移動するためのツールとなります。
チャレンジ
簡単入力として2つの数値を受け取り、計算を行い、ラベル付きで結果を表示します。
2つの入力を受け取ります:
- 価格(文字列として)
- 数量(文字列として)
as.numeric()を使用して両方の入力を数値に変換し、価格に数量を掛けて合計金額を計算してください。
次の形式で出力を表示してください:
Total: [result]出力にはcat()を使用し、最後に改行文字\nを含めてください。
例えば、入力が15.50と4の場合、出力は次のようになります:
Total: 62チートシート
as.numeric() を使用して、文字列を数値に変換します:
input <- "42"
number <- as.numeric(input)
cat(number + 8, "\n") # 出力: 50ユーザー入力を変換するための一般的なパターン:
age_text <- readline()
age <- as.numeric(age_text)
cat("In 10 years, you will be", age + 10, "\n")as.character() を使用して、数値を文字列に変換します:
number <- 100
text <- as.character(number)
cat("The value is:", text, "\n")自分で試してみよう
# 入力を読み込む
con <- file("stdin", "r")
price_str <- suppressWarnings(readLines(con, n = 1))
quantity_str <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: 以下にコードを記述してください
# 1. as.numeric() を使用して price_str と quantity_str を数値に変換します
# 2. 合計金額(価格 * 数量)を計算します
# 3. cat() を使用して、"Total: [結果]\n" という形式で結果を表示しますこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。