[R] 자료형 - 3.List
3. list
: 서로 다른 데이터 타입을 갖는 벡터를 저장하거나 다른 리스트를 저장할 수 있는 구조
list(key=value,key=value)
리스트에 특정한 키의 타입을 확인
typeof(x$name)
인덱싱
x[1] : key,value
x[[1]] : value만
x[-1] : 1번 인덱스의 키,값은 제외
슬라이싱 : x[1:2]
list 키,값을 추가
x$sal <- 1000
list 키,값 삭제
x$sal <- NULL
list는 중첩을 사용할 수 있다
y <- list(a=list(d=c(1,2,3)), b=list(d=c(1,2,3,4)))
list 키 이름을 확인
names(y) names(y)[1]
키 이름 수정
names(y)[1] <- 'A' names(y)[2] <- 'B'
형변환
list -> vector(문자형)으로 자료형을 변환하는 함수 :
as.character(lst)
list -> vector(수치형)으로 자료형을 변환하는 함수 :
as.numeric(lst)
as.integer(lst)
☞숫자는 바꿀 수 있지만 문자는 NA로 변환된다.
list -> vector형으로 변환하는 함수 :
lst_new <- unlist(lst)
☞키는 컬럼으로 변환된다
vector -> list 변환하는 함수 :
lst_new2 <- as.list(lst_new)
charactor -> numeric형으로 변환 함수 :
lst_new2$height <- as.numeric(lst_new2$height)
charactor -> integer형으로 변환 함수 :
lst_new2$weight <- as.integer(lst_new2$weight)
[문제11] lst 변수에 name = 'king' , height = 180, weight = 70 값을 입력해 주세요.
lst <- list(name = 'king' , height = 180, weight = 70)
[문제12] lst 변수에 blood = 'A' 추가하세요.
lst$blood <- 'A'
[문제13] lst 변수에 name의 값을 'scott'로 수정하세요.
lst$name <- 'scott'
[문제14] lst변수에 2번인덱스 값만 출력해주세요.
names(lst)[2]
[문제15] lst변수에 blood 이름을 blood type 이름으로 수정하세요.
names(lst)[which %in% blood) <- 'blood type'