Menu
Coddy logo textTech

리스트 생성하기

Coddy R 여정의 기초 섹션에 포함된 레슨 — 78개 중 71번째.

벡터는 강력하지만 한 가지 제한 사항이 있습니다. 모든 요소의 타입이 같아야 한다는 것입니다. 서로 다른 타입의 데이터를 함께 저장해야 할 때, R은 리스트(lists)를 제공합니다.

리스트는 숫자, 문자, 논리값, 심지어 다른 벡터나 리스트를 포함하여 서로 다른 유형의 요소를 담을 수 있는 유연한 데이터 구조입니다. 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

서로 다른 데이터 타입을 혼합할 수 있는 이러한 능력은 리스트를 한 객체 안에 나이, 이름, 멤버십 상태를 모두 포함하는 사람의 프로필과 같은 복잡한 데이터 구조를 표현하는 데 이상적으로 만듭니다.

challenge icon

챌린지

쉬움

세 줄의 입력을 받게 됩니다:

  1. 숫자 값 (예: 99.99)
  2. 텍스트 값 (예: Premium Member)
  3. 텍스트 형태의 논리 값: TRUE 또는 FALSE (예: TRUE)

다음 작업을 수행하세요:

  1. 세 개의 입력을 읽고 적절한 타입(numeric, character, logical)으로 변환합니다.
  2. 이 세 값을 순서대로 포함하는 리스트를 생성합니다: 숫자 값이 첫 번째, 그 다음 텍스트, 마지막으로 논리 값 순서입니다.
  3. 첫 번째 요소로 세 숫자의 벡터인 c(10, 20, 30)를 가지고, 두 번째 요소로 텍스트 "data"를 가지는 두 번째 리스트를 생성합니다.
  4. 첫 번째 리스트를 출력합니다.
  5. 두 번째 리스트를 출력합니다.

예를 들어, 입력이 다음과 같다면:

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)는 서로 다른 유형의 요소(숫자, 문자, 논리값, 벡터 또는 다른 리스트까지)를 담을 수 있는 유연한 데이터 구조입니다.

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

직접 해보기

# 세 개의 입력을 읽습니다
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. 첫 번째 요소로 c(10, 20, 30)를, 두 번째 요소로 "data"를 갖는 두 번째 리스트를 생성합니다
# 4. 두 리스트를 모두 출력합니다
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨