Menu
Coddy logo textTech

名前付きリスト

CoddyのRジャーニー「基礎」セクションの一部 — レッスン 74/78。

名前付きベクトルと同様に、リストの要素に名前を割り当てることができます。これにより、コードの可読性が向上し、数値的な位置ではなく、意味のあるラベルによって要素にアクセスできるようになります。

リストを作成する際に名前を割り当てることができます:

person <- list(name = "Alice", age = 25, active = TRUE)
print(person)

出力:

$name
[1] "Alice"

$age
[1] 25

$active
[1] TRUE

出力に [[1]] の代わりに $name が表示されていることに注目してください。名前付き要素にアクセスするには、$ 演算子を使用します:

person <- list(name = "Alice", age = 25, active = TRUE)
print(person$age)

出力:

[1] 25

名前を文字列として二重括弧を使用することもできます。これは、名前が変数に格納されている場合に便利です:

person <- list(name = "Alice", age = 25)
print(person[["name"]])

出力:

[1] "Alice"

名前付き要素の変更も同様に行います。既存の値を変更したり、新しい値を追加したりするには、$ を使用します:

person <- list(name = "Alice", age = 25)
person$age <- 26
person$city <- "Paris"
print(person)

出力:

$name
[1] "Alice"

$age
[1] 26

$city
[1] "Paris"
challenge icon

チャレンジ

簡単

3行の入力が与えられます:

  1. 本のタイトル (例: The Great Gatsby)
  2. 本の著者 (例: F. Scott Fitzgerald)
  3. 出版年 (例: 1925)

以下の操作を実行してください:

  1. titleauthoryear の3つの要素を持つ book という名前付きリストを作成します(year は数値型に変換してください)
  2. $ 演算子を使用して本のタイトルを表示します
  3. 名前を文字列として指定し、二重ブラケットを使用して本の出版年を表示します
  4. $ 演算子を使用して、year を1年後の値に更新します
  5. 値が TRUE である available という新しい要素を追加します
  6. 更新されたリスト全体を表示します

例えば、入力が以下の場合:

1984
George Orwell
1949

出力は以下のようになります:

[1] "1984"
[1] 1949
$title
[1] "1984"

$author
[1] "George Orwell"

$year
[1] 1950

$available
[1] TRUE

解説:

  • book$title はタイトルの値を表示します
  • book[["year"]] は元の出版年を表示します
  • 出版年が 1949 から 1950 に更新されます
  • 値が TRUE の新しい available 要素が追加されます

チートシート

リストの要素に名前を割り当てることで、可読性を高め、意味のあるラベルでアクセスできるようになります。

作成時に名前を割り当てて、名前付きリストを作成します:

person <- list(name = "Alice", age = 25, active = TRUE)

$ 演算子を使用して、名前付き要素にアクセスします:

person$age  # 25を返します

名前を文字列として指定し、二重ブラケットを使用して名前付き要素にアクセスします:

person[["name"]]  # "Alice"を返します

既存の名前付き要素を修正します:

person$age <- 26

新しい名前付き要素を追加します:

person$city <- "Paris"

自分で試してみよう

# 入力を読み込む
con <- file("stdin", "r")
title <- suppressWarnings(readLines(con, n = 1))
author <- suppressWarnings(readLines(con, n = 1))
year <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: 以下にコードを記述してください
# 1. title、author、year(yearは数値型に変換)を要素に持つ「book」という名前付きリストを作成します
# 2. $ 演算子を使用して本のタイトルを表示します
# 3. 名前を文字列として指定した二重ブラケットを使用して本の出版年を表示します
# 4. $ 演算子を使用して出版年を1年後に更新します
# 5. 値が TRUE の「available」という新しい要素を追加します
# 6. 更新された完全なリストを表示します
quiz icon腕試し

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

基礎のすべてのレッスン