[R] 리스트(List) 데이터 추가하기 (List Indexing)

해당 포스트에서는 R에서 리스트(List) 내 데이터 추가 방법을 설명합니다.

1. INTRO

네이버 지식iN에서 지식을 공유하고 있습니다. 간단한 질문들은 해당 질문에 바로 답변을 드리지만 질문의 내용이 유익하거나 추가 설명이 필요한 경우에는 포스팅을 작성하여 공유드리고 있습니다.

2. 질문

▲ 네이버 지식인 질문

3. 풀이

이번 문제는 R에서 주어진 조건에 맞춰 리스트(List)를 생성하고 리스트 내 데이터를 추가 입력하는 문제입니다. R프로그래밍을 접하신지 얼마되지 않으신 분들은 벡터(Vector)데이터 프레임(Data Frame) 만 다루다 리스트(List) 를 조작하시는게 쉽지 않으실 수 있습니다. 아래에서는 위 문제를 해결하기 위한 방법을 단계별로 소개드리겠습니다.

  1. 리스트 생성
  2. 리스트에 요소(item) 추가하기
  3. 리스트에 원소 및 요소(item) 추가하기
  4. 최종 리스트 출력

1. 리스트 생성

먼저 문제 풀이에 사용할 데이터(List)를 생성해 보겠습니다. 데이터 요소는 위 사진에서 제시된 형태로 만들어 보겠습니다.

R Script

student <- list(이름=c("이수진", "김우혁"), 학교=c("동고", "서고"), 학년=c(2, 3))
student
student
## $이름
## [1] "이수진" "김우혁"
## 
## $학교
## [1] "동고" "서고"
## 
## $학년
## [1] 2 3

2. 리스트에 요소(item) 추가하기

이번에는 위에서 만든 student 리스트에 ("박찬호", "남고", 3)을 추가해 보도록 하겠습니다. 리스트에서는 인덱싱(Indexing)을 할 때 대괄호를 두겹([[ ]])으로 사용합니다. 첫번째 대괄호는 리스트의 원소를 선택할 수 있고, 두번째 대괄호는 원소 내 요소(item)을 선택하는데 사용할 수 있습니다.

R Script

student[["이름"]] <- c(student[["이름"]], "박찬호")
student[["학교"]] <- c(student[["학교"]], "남고")
student[["학년"]] <- c(student[["학년"]], 3)
student
## $이름
## [1] "이수진" "김우혁" "박찬호"
## 
## $학교
## [1] "동고" "서고" "남고"
## 
## $학년
## [1] 2 3 3

3. 리스트에 원소 및 요소(item) 추가하기

이번에는 student 리스트 내에 '성별' 원소를 추가하고, 이수진은 '여', 김우혁박찬호는 '남'으로 요소를 입력해 보겠습니다.

아래 최종 리스트 출력 결과를 보시면 정상적으로 데이터가 모두 입력되는 것을 볼 수 있습니다.

R Script

student <- c(student, list(성별=c("여","남","남")))
student
## $이름
## [1] "이수진" "김우혁" "박찬호"
## 
## $학교
## [1] "동고" "서고" "남고"
## 
## $학년
## [1] 2 3 3
## 
## $성별
## [1] "여" "남" "남"

4. 마무리

이번 포스트에서는 R에서 리스트(List)를 생성하고 인덱싱을 이용하여 원소 및 요소들을 추가하는 방법을 설명하였습니다. 위에서 소개한 R의 리스트(List)는 프로그래밍에서 많이 사용되는 Key-Value 구조로 앞으로 개발/분석 공부를 하시는데 자주 접하시게 될 개념입니다. 다양한 예제들을 찾아 연습해 보시는걸 추천 드립니다.


banner-request-analysis