맛동산

리스트(List) 기초 본문

머신러닝/R

리스트(List) 기초

오지고지리고알파고포켓몬고 2017. 3. 26. 13:41

# python : dict = {"id":"hong", "name":"홍길동", "age":35}

# R vector(3) = |"id":"hong"|"name":"홍길동"|"age":35|

# 밖에서보면 백턴데 뜯어보면 dict형태인겨


# 1차원 리스트 : 1개의 원소를 갖는 리스트 : key 생략

list <- list(95 ,85, 33 62)

list

# [[n]] : key, [m] : value

#[[1]] <- key

#[1] 95 <- value

key를 생략하면 [[인덱스]] 형태로 생성


# list 구조 제거 -> vector

vec_list <- unlist(list)        

vec_list

# 1차원 백터구조로 변경됨


# 1차원 리스트의 key = value 형식

num2 <- list(first=c(1:5), second=c(6:10)) # key = value형태로 저장      

num2

num2[[1]] # 첫번째 value 

num2[1] # 첫번째 key, value 확인 


# key -> value 참조 

# 형식) 변수$키 

num2$first

num2$second


# 원소 추가

member <- list(name=c("홍길동","이순신"),age = 35,address="한양",

               gender="남자", htype="아파트")


member$age <- 45  # 원소 수정 

member$id <- "hong" # id 원소 추가 

member$pwd <- "1234" # pwd 원소 추가


# list data 처리 함수

a <- list(c(1:5))

b <- list(6:10)    


# apply() vs lapply()

# matrix, data.frame : apply()

# list : lapply(), sapply() # s가 붙으면 결과를 백터로 반환

lapply(c(a,b), max) # list로 결과 반환 ( key value 형태로 반환 )

sapply(c(a,b), max)  # vactor로 결과 반환


# 중첩리스트

multi_list <- list(c1=list(x1=1,x2=2,x3=3), c2=list(y1=10,y2=20,y3=30), c3=list(z1=100,z2=200,z3=300))

multi_list

class(multi_list)


multi_list$c1

multi_list$c2$y1

multi_list$c3$z3


# 중첩리스트를 핸들링하는 함수중에 do.call이 있다

do.call(cbind, multi_list) 

# List -> Matrix로 변환


cbind sapply

'머신러닝 > R' 카테고리의 다른 글

stringr  (0) 2017.03.26
데이터프레임(Dataframe) 기초  (0) 2017.03.26
배열(Array) 기초  (0) 2017.03.26
매트릭스(Matrix) 기초  (0) 2017.03.26
백터(vector) 기초  (0) 2017.03.26
Comments