티스토리 뷰

R

리스트(list)와 행렬(matrix)

코린이도이 2021. 6. 6. 17:09

리스트(list)

- 숫자형, 문자형 데이터를 섞어서 저장이 가능하며 벡터와 같이 인덱스 번호로 내부 데이터 접근이 가능

 

1. 리스트 만들기

  • 리스트 값들도 결국은 변수에 할당
  • list()함수를 이용하여 생성
  • list(키1=값1,키2=값2...): 해당 키에 값을 할당
  • #list생성
    > myfavorite<-list(friend="홍길동",mymum=7,myalpha='z')
    > myfavorite
    $friend
    [1] "홍길동"
    
    $mymum
    [1] 7
    
    $myalpha
    [1] "z"
    
    #리스트의 특정키 조회 -> $이용
    > myfavorite$myalpha
    [1] "z"

2. 리스트에 항목 추가

  • 형식: 변수명$추가할key<-값
  • #mysong 키에 butter추가
    > myfavorite$mysong<-"butter"
    > myfavorite
    $friend
    [1] "홍길동"
    
    $mymum
    [1] 7
    
    $myalpha
    [1] "z"
    
    $mysong
    [1] "butter"

 

행렬(matrix)

- 2차원 벡터를 표현하기 위한 방법

- matrix() 함수를 이용하여 생성

 

1. 행렬 생성방법

  • 행과 열의 인덱스는 1부터 시작
  • matrix(행렬의 구성원소, nrow=행의 개수, ncol=열의 개수, dimnames=행과 열의 이름)
  • 기본적으로 열 중심(column-major order)
  • 행 중심으로 원소 기록하고자 할 경우 matrix(행렬의 구성원소, nrow=행의 개수, ncol=열의 개수, byrow=TRUE)
  • #2X3인 행렬 생성
    > age<-matrix(c(25,33,32,37,27,38),nrow=2,ncol=3)
    > age
         [,1] [,2] [,3]
    [1,]   25   32   27
    [2,]   33   37   38
    
    #1열의 원소 출력
    > age[,1]
    [1] 25 33
    
    #2행의 원소 출력
    > age[2,]
    [1] 33 37 38
    
    #행 중심으로 행렬 생성
    > age<-matrix(c(25,33,32,37,27,38),nrow=2,byrow=TRUE)
    > age
         [,1] [,2] [,3]
    [1,]   25   33   32
    [2,]   37   27   38

2. 행과 열 이름 지정하기

  • 행렬에서 행 또는 열에 이름 지정
  • dimnames(행렬)<-값
  • #행 중심으로 행렬생성
    > info<-matrix(c("177cm","68kg","165cm","57kg","160cm","55kg","155cm","50kg"),ncol=2,byrow=TRUE)
    > info
         [,1]    [,2]  
    [1,] "177cm" "68kg"
    [2,] "165cm" "57kg"
    [3,] "160cm" "55kg"
    [4,] "155cm" "50kg"
    
    #행과 열의 이름 지정
    > dimnames(info)<-list(c("1번","2번","3번","4번"),c("키","몸무게"))
    > info
        키      몸무게
    1번 "177cm" "68kg"
    2번 "165cm" "57kg"
    3번 "160cm" "55kg"
    4번 "155cm" "50kg"

3. 행렬에 새로운 행/열 추가하는 작업

  • 행 추가 함수: rbind(행렬,행에 추가할 원소)
  • 열 추가 함수: cbind(행렬,열에 추가할 원소)
  • > a1<-c("167cm","54kg")
    > a2<-c("178cm","70kg")
    
    #행 추가
    > rbind(info,a1,a2)
        키      몸무게
    1번 "177cm" "68kg"
    2번 "165cm" "57kg"
    3번 "160cm" "55kg"
    4번 "155cm" "50kg"
    a1  "167cm" "54kg"
    a2  "178cm" "70kg"
    
    #열 추가
    > cbind(info,c("남","남","여","여"))
        키      몸무게     
    1번 "177cm" "68kg" "남"
    2번 "165cm" "57kg" "남"
    3번 "160cm" "55kg" "여"
    4번 "155cm" "50kg" "여"

 

'R' 카테고리의 다른 글

함수(function)  (0) 2021.06.06
조건제어문(if, ifelse, for, while, repeat)  (0) 2021.06.06
데이터 프레임(data frame)  (0) 2021.06.06
벡터(vector)  (0) 2021.06.06
R의 데이터 구조  (0) 2021.06.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함