ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 연습문제 정리1
    기타/R(아르) 2021. 2. 16. 11:04

    # 합집합
    union()

    #차집합
    setdiff()

    #교집합
    intersect()

     

    문제1 (백터: 1차원 배열)
    drink = c("콜라","사이다","환타","핫식스","몬스터터")
    drink
    "콜라"     "사이다"   "환타"     "핫식스"   "몬스터터"

     

    문제2 (백터에서 특정값 찾기: 다른 언어와 다르게 R은 1부터 시작한다)
    drink[-1][-2]
    "사이다"   "핫식스"   "몬스터터"

     

    문제3 (합집합 사용)
    vec1 = c("홍길동", "강감찬", "김유신")
    vec2= c ("송강호", "나문희")
    union(vec1, vec2)

    "홍길동" "강감찬" "김유신" "송강호" "나문희"

     

    문제4 (배열 객체 갯수 파악하기)
    length(vec1)

    3

     


     

    행렬 만들기 (2차원 배열)

    mar2 = matrix(c(1,2,3,4,5,6), nrow = 행 갯수, byrow = 트루:열 먼저 채우기)

     

    행렬 조회

    mat[행, 열]

     

    문제1

    fruit = matrix(c("감자", "고구마", "당근", "양파"), nrow=2)
    fruit

         [,1]     [,2]  
    [1,] "감자"   "당근"
    [2,] "고구마" "양파"

     

    문제2

    mat = matrix(c(1:20), nrow=4)
    mat
    mat[c(1,3), c(1,2,4)]

         [,1] [,2] [,3]
    [1,]    1    5   13
    [2,]    3    7   15

     


    배열 (3차원 배열)

    array = array(c(1:12), dim=c(2,2,3))

    array

    , , 1

         [,1] [,2]
    [1,]    1    3
    [2,]    2    4

    , , 2

         [,1] [,2]
    [1,]    5    7
    [2,]    6    8

    , , 3

         [,1] [,2]
    [1,]    9   11
    [2,]   10   12

     

     

    array[1,2,2] (행,열,높이위치)

    7

     

     

     

    리스트 (같은 형식의 객체가 아니라도 담을 수 있다)

    구매내역목록 = list(번호=1000, 고객명='홍길도', 상품명='맛동산', 구매일자=as.Date('2018-01-11'), 금액=500)

    list_a구매내역목록
    $번호
    [1] 1000

    $고객명
    [1] "홍길도"

    $상품명
    [1] "맛동산"

    $구매일자
    [1] "2018-01-11"

    $금액
    [1] 500

     


    구매내역목록$고객명
    $고객명
    [1] "홍길도"

     


    구매내역목록[-3:-4]

    $번호
    [1] 1000

    $고객명
    [1] "홍길도"

    $금액
    [1] 500

     


    데이터프레임

    mem=data.frame( 컬럼명 = 자료 ) 

    di = data.frame(
      name = c('일일','이이','삼삼'),
      height=c(167,170,180)
    )
    
    d2 = data.frame(
      name = c('일일','넷넷','삼삼'),
      weight=c(65,75,80)
    )
    > di
      name height
    1 일일    167
    2 이이    170
    3 삼삼    180
    > d2
      name weight
    1 일일     65
    2 넷넷     75
    3 삼삼     80

     

    데이터프레임 합치기

    merge(mem,mem2)  - 앞 프레임과 공통된 자료만 합친다

    > merge(di,d2)
      name height weight
    1 삼삼    180     80
    2 일일    167     65

    merge(mem,mem2, all = T)  - 공통된 자료와 상관없이 합친다

    > merge(di,d2, all = T)
      name height weight
    1 넷넷     NA     75
    2 삼삼    180     80
    3 이이    170     NA
    4 일일    167     65

     

    새로운 행과 열 추가하기

    구조가 완벽하게 같은 두 데이터테이블

    > kkk
      name height weight
    1 넷넷     NA     75
    2 삼삼    180     80
    3 이이    170     NA
    4 일일    167     65
    > aaa
          name height weight
    1 미스터리    150     83

    kkk=rbind(kkk,aaa)

    > kkk
          name height weight
    1     넷넷     NA     75
    2     삼삼    180     80
    3     이이    170     NA
    4     일일    167     65
    5 미스터리    150     83

     

    새로운 컬럼을 추가하기

    > aaa = data.frame(
    +   name = '미스터리',
    +   height = 150,
    +   weight = 83
    + )
    > ccc = data.frame(
    +   grade=c(1,2,3,4,5)
    + )

    aaa = cbind(aaa,ccc)

    > aaa
          name height weight grade
    1 미스터리    150     83     1
    2 미스터리    150     83     2
    3 미스터리    150     83     3
    4 미스터리    150     83     4
    5 미스터리    150     83     5

     

     

    문제1

    > 구매정보테이블 = data.frame(
    +   no = c(1,2,3),
    +   name = c('홍길동', '일지매', '강감찬'),
    +   qty = c(10,30,20)
    + )
    구매정보테이블
      no   name qty
    1  1 홍길동  10
    2  2 일지매  30
    3  3 강감찬  20
    > 

     

     

    문제2

    구매정보테이블[c(1,3), c(2,3)]
        name qty
    1 홍길동  10
    3 강감찬  20

     

    문제3

    > ccc = data.frame(
    +   data=c(2018,2017,2016)
    + )
    구매정보테이블 = cbind(구매정보테이블,ccc)
    
    > 구매정보테이블
      no   name qty data
    1  1 홍길동  10 2018
    2  2 일지매  30 2017
    3  3 강감찬  20 2016

    댓글

Designed by Tistory.