본문 바로가기
반응형

리스트8

[R 코딩] 리스트에서 특정 조건으로 요소 제거하기 리스트에서 특정 조건으로 요소를 제거하는 방법입니다. 예를들어 "문자열"만 제거한다던가, NA 요소를 제거하는 것입니다. discard 함수 안에 is 함수를 사용하면 됩니다. 리스트를 하나 정의해봅시다. > li=list(1,"a",2,"b",NA) > li [[1]] [1] 1 [[2]] [1] "a" [[3]] [1] 2 [[4]] [1] "b" [[5]] [1] NA 문자열만 제거해보겠습니다. > discard(li,is.character) [[1]] [1] 1 [[2]] [1] 2 [[3]] [1] NA 숫자를 제거할 때는 is.numeric, NA를 제거할 때는 is.na 를 대신 넣으면 됩니다. 2020. 12. 18.
[R 코딩] 리스트안 NULL 요소 일괄제거 방법 (compact 함수) 리스트 안에 NULL 요소가 있는 경우가 있습니다. NULL 요소를 제거할 때는 purrr 라이브러리의 compact 함수를 사용합니다. purrr은 tidyverse 세계관이므로, tidyverse 패키지를 불러와도 됩니다. library(purrr) #또는 library(tidyverse) NULL 요소가 있는 리스트를 하나 정의해봅시다. > li=list(A=1,B=2,C=NULL,D=NULL,E=3) > li $A [1] 1 $B [1] 2 $C NULL $D NULL $E [1] 3 compact 함수를 적용하여 NULL 요소를 제거합시다. > compact(li) $A [1] 1 $B [1] 2 $E [1] 3 2020. 12. 17.
[R 코딩] 이름과 내용을 각각 벡터로 정의하고 리스트 만들기 이름과 내용을 각각 벡터로 정의하고 리스트를 만들 수도 있습니다. 먼저 이름과 내용을 각각 정의합시다. 다섯사람의 수학점수라고 합시다. > names=c("Tim","Marry","Kitkat","Rorry") > math=c(86,78,46,23) 비어있를 리스트를 하나 정의합시다. > li=list() 아래와 같이 이름과 내용을 리스트에 입력합시다. > li[names]=math > li $Tim [1] 86 $Marry [1] 78 $Kitkat [1] 46 $Rorry [1] 23 2020. 12. 16.
[R 코딩] 리스트를 데이터프레임으로 만드는 stack 함수 stack 함수를 이용하면 리스트를 데이터프레임으로 만들 수 있습니다. 왜 리스트를 데이터프레임으로 바꾸는지, 어떻게 바뀌는지는 예제를 통해 이해할 수 있을것입니다. 단, 벡터나 factor가 들어있는 리스트만 가능합니다. 예를들어 한국,미국,영국 세 나라에서 다섯사람씩 모였고 이들의 나이를 리스트레 저장했다고 합시다. > li=list(kor=c(23,42,66,36,72),us=c(11,16,25,66,73),uk=c(16,5,34,25,12)) > li $kor [1] 23 42 66 36 72 $us [1] 11 16 25 66 73 $uk [1] 16 5 34 25 12 위 리스트에 stack 함수를 적용한 결과는 아래와 같습니다. > stack(li) values ind 1 23 kor 2 4.. 2020. 12. 16.
[R 코딩] list 를 벡터로 만들기 (unlist 함수) 벡터, 행렬, 데이터프레임을 하나씩 정의하여 list에 넣어봅시다. > v=c(1,2,3) > m=matrix(1:4,2) > df=data.frame(a=c(10,20,30),b=c(40,50,60)) 리스트에 넣은 결과입니다. > ml=list(v,m,df) > ml [[1]] [1] 1 2 3 [[2]] [,1] [,2] [1,] 1 3 [2,] 2 4 [[3]] a b 1 10 40 2 20 50 3 30 60 리스트에 unlist 함수를 적용해봅시다. > unlist(ml) a1 a2 a3 b1 b2 b3 1 2 3 1 2 3 4 10 20 30 40 50 60 벡터로 변한것을 알 수 있습니다. 2020. 12. 15.
[R기초] 리스트는 언제 사용할까? [R기초] 리스트는 언제 사용할까? R을 공부하다 보면 자료구조라는 것을 배우게 됩니다. 자료를 담는 그릇인데 아래와 같은 것들이 있습니다. - 벡터- 행렬- 배열- 리스트- 요인- 데이터프레임- 테이블 이들 중 "이건 왜있지?" 라는 생각이 드는 자료구조가 있었습니다. 바로 '리스트'입니다. 지금은 R 초보자는 벗어났다고 생각하는데, 초보 시절에는 리스트의 존재 이유를 알기가 어려웠습니. 따라서 거의 사용하지도 않았습니다. 지금은 없어서는 안될 존재입니다. 오늘은 내가 경험한 리스트의 용도 중 하나를 공유하려고 합니다. 상황을 하나 가정하겠습니다. 10개의 벡터를 만들어야 하는 상황입니다. 10개의 벡터를 만들고 각각의 벡터에 0과 10사이의 임의의 숫자 5개를 넣으려고 합니다. 아래와 같은 코드를 짜.. 2020. 9. 16.
R에서 리스트를 벡터로 바꾸는 방법, unlist() R에서 리스트를 벡터로 바꾸는 방법, unlist() 먼저 리스트를 하나 만들겠습니다. my_list=list(c(1,2,3),c('a','b','c')) unlist함수를 적용하면, 리스트에 입력된 순서대로 벡터의 원소가 됩니다. 문자형만 있는 경우 factor로 반환됩니다. > unlist(my_list)[1] "1" "2" "3" "a" "b" "c" 저는 주로 이런 상황에 사용합니다. 데이터프레임에서 [ ] 인덱스로 열에 접근할 경우 결과가 리스트로 반환됩니다. 데이터프레임을 하나 만들어봅시다. > myd=data.frame(c1=c(1,2,3),c2=c("a","b","c")) > myd c1 c2 1 1 a 2 2 b 3 3 c 2열에 접근하여 myd_2에 저장합시다. 리스트 형태로 저장됩니다.. 2019. 12. 11.
[R기초] 리스트 정의하는 방법 + 자료구조 확인 [R기초] 리스트 정의하는 방법 #1. 형식 list(...) ... : 어떤 형식의 데이터도 넣을 수 있고, 개수 제한 없음. #2. 예제 list 안에 지금까지 배운 벡터, 행렬, 배열을 넣어봅시다. 가독성을 위해 벡터를 빨강, 행렬을 초록, 배열을 주황으로 표시하였습니다. > my_v=c(1,2,3) > my_mat=matrix(c(1,2,3,4,5,6),2) > my_arr=array(c(1,2,3,4,5,6,7,8),dim=c(2,2,2)) > my_list=list(my_v,my_mat,my_arr) > my_list [[1]] [1] 1 2 3 [[2]] [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 [[3]] , , 1 [,1] [,2] [1,] 1 3 [2,] 2 4 .. 2019. 11. 30.
반응형