List : 서로 다른 데이터구조

- Vector, Data Frame, Array, List의 중첩구조

- c(구조체), python(딕셔너리)

- 함수 내에서 여러 값을 하나의 키로 묶어서 반환할 경우 유용함

 

# key를 이용하여 value에 접근하기 (Java mapkey , value 값과 유사)

자료의 구조가 vector 형태이지만 어떠한 자료의 구조가 와도 문제없이 key-value의 형태로 실행합니다.

Member의 값에 주소 값을 넣어서 member (참조자료형) 사용 

java에서는 ( . ) 을 활용하여 변수로 접을 할 수 있었는데, R$로 변수에 접근 할 수 있습니다.

R에서는 변수, 함수의 이름으로 ( . )을 사용하고, java에서는 변수, 메서드의 이름에 $를 사용합니다.

list 부분적인 추가 작업은 key-value의 추가는 과정은 적극적으로 활용하지 않습니다.  

복잡성에 의해서 적합한 작업이 아닙니다.

 

 

# 1개 값을 갖는 리스트 객체 생성

: List의 구조일 때, 반드시 key-value 값으로 저장해야 하는 것은 아닙니다.

#[[1]] ---------> key(생략) [[n]]

#[1] "lee" ---------> value[n]

: Key 가 없으면 대괄호 두개 안에 index를 통해서 출력

 

 

# 1개 이상의 값을 갖는 리스트 객체 생성

 

위의 자료 구조를 vector의 자료 구조로 변경

 

Key값이 없을 때, vector의 형태로 변경하여 데이터 관리하는 것이 편리합니다.  

(, 같은 자료형 사용)

 

Lapply : list에서 활용하는 함수로, 입력으로 vector 또는 list 를 받아 list 를 반환합니다.

Sapply : 리스트 형식을 벡터 형식으로 반환하기, 벡터로 반환되는 정수 값은 integer로 반환해줍니다.

 

 

# 다차원 리스트 객체 생성

key 값이 없는 List 안에 list

 

 

# key 값이 존재하는 list 안에 list

 

 

# 다차원 리스트를 열 단위로 바인딩

do.call cbind에 의해서 열단위로 만들어 바인드 해주고, 그때의 자료 구조를 matrix로 반환합니다.

+ Recent posts