リストの作成
CoddyのRジャーニー「基礎」セクションの一部 — レッスン 71/78。
ベクトルは強力ですが、1つの制限があります。それは、すべての要素が同じ型でなければならないということです。異なる型のデータをまとめて保存する必要がある場合、Rはリストを提供します。
リストは、数値、文字、論理値、さらには他のベクトルやリストなど、異なる型の要素を保持できる柔軟なデータ構造です。list() 関数を使用してリストを作成します:
my_list <- list(42, "hello", TRUE)
print(my_list)出力:
[[1]]
[1] 42
[[2]]
[1] "hello"
[[3]]
[1] TRUE各要素が二重括弧内のインデックスとともに表示されていることに注目してください。これは、要素が1行に表示されるベクトルとは異なります。リストは要素としてベクトルを含むこともできます:
my_list <- list(c(1, 2, 3), "text", c(TRUE, FALSE))
print(my_list)出力:
[[1]]
[1] 1 2 3
[[2]]
[1] "text"
[[3]]
[1] TRUE FALSE異なるデータ型を混在させることができるこの能力により、リストは、年齢、名前、会員ステータスをすべて1つのオブジェクトに含む個人のプロファイルのような、複雑なデータ構造を表現するのに理想的なものとなっています。
チャレンジ
簡単3行の入力を受け取ります:
- 数値(例:
99.99) - テキスト値(例:
Premium Member) - テキストとしての論理値:
TRUEまたはFALSE(例:TRUE)
以下の操作を実行してください:
- 3つの入力を読み込み、適切な型(数値、文字、論理値)に変換します。
- これら3つの値を順番に含むリストを作成します:最初に数値、次にテキスト、最後に論理値の順です。
- 1番目の要素として3つの数値のベクトル
c(10, 20, 30)を、2番目の要素としてテキスト"data"を含む2つ目のリストを作成します。 - 1番目のリストを出力します。
- 2番目のリストを出力します。
例えば、入力が以下の場合:
42.5
Active User
FALSE出力は以下のようになります:
[[1]]
[1] 42.5
[[2]]
[1] "Active User"
[[3]]
[1] FALSE
[[1]]
[1] 10 20 30
[[2]]
[1] "data"リストは異なる型の要素を保持でき、ベクトルをリストの要素として含めることができることを覚えておいてください。
チートシート
リストは、異なる型(数値、文字、論理値、ベクトル、さらには他のリストなど)の要素を保持できる柔軟なデータ構造です。
list()関数を使用してリストを作成します:
my_list <- list(42, "hello", TRUE)
print(my_list)出力:
[[1]]
[1] 42
[[2]]
[1] "hello"
[[3]]
[1] TRUEリストは要素としてベクトルを含むことができます:
my_list <- list(c(1, 2, 3), "text", c(TRUE, FALSE))
print(my_list)出力:
[[1]]
[1] 1 2 3
[[2]]
[1] "text"
[[3]]
[1] TRUE FALSE自分で試してみよう
# 3つの入力を読み込む
con <- file("stdin", "r")
numeric_input <- suppressWarnings(readLines(con, n = 1))
text_input <- suppressWarnings(readLines(con, n = 1))
logical_input <- suppressWarnings(readLines(con, n = 1))
# TODO: 以下にコードを記述してください
# 1. 入力を適切な型(数値、文字、論理値)に変換する
# 2. これら3つの変換された値を順番に含むリストを作成する
# 3. 最初の要素に c(10, 20, 30)、2番目の要素に "data" を持つ2つ目のリストを作成する
# 4. 両方のリストを出力するこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。