Menu
Coddy logo textTech

型変換の基本

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")

数値を文字に変換することは、他のテキストと組み合わせる必要がある場合や、関数が特に文字入力を必要とする場合に便利です。これらの変換関数は、プログラムが必要とするときにいつでもデータ型間を移動するためのツールとなります。

challenge icon

チャレンジ

簡単

入力として2つの数値を受け取り、計算を行い、ラベル付きで結果を表示します。

2つの入力を受け取ります:

  1. 価格(文字列として)
  2. 数量(文字列として)

as.numeric()を使用して両方の入力を数値に変換し、価格に数量を掛けて合計金額を計算してください。

次の形式で出力を表示してください:

Total: [result]

出力にはcat()を使用し、最後に改行文字\nを含めてください。

例えば、入力が15.504の場合、出力は次のようになります:

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" という形式で結果を表示します
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン