Learning R 5 - Lists and Data Frames

4928 단어 데이터 분석
https://github.com/cccxm/deep-learning/tree/master/R/learning-r/c-5
장절 목표
  • list와 데이터를 만들 수 있습니다.frame
  • , length, names 및 기타 이 변수를 검사하고 조작할 수 있는 함수
  • 무엇이 무엇인지 이해하고 어떻게 사용하는지
  • 귀속 변수와 원자 변수의 차이 이해
  • list와 데이터에 대해 알아보세요.프레임의 기본 조작
  • 기사 목록

  • Lists
  • 체인 테이블 생성
  • 원자 변수와 귀속 변수
  • 체인 테이블의 길이와 연산
  • 체인 테이블의 인덱스 작업
  • 체인 테이블과 벡터의 전환
  • 체인 테이블의 결합
  • Data Frame
  • 데이터 상자 객체 만들기
  • 기본 데이터 상자 작업
  • Lists


    List는 요소 유형이 서로 다른 벡터로 이해됩니다.

    체인 테이블 생성하기

    NULL 함수를 사용하면 체인 테이블을 만들 수 있습니다.
    > my_list  my_list
    [[1]]
    [1] 1 2 3
    
    [[2]]
         [,1] [,2]
    [1,]    1    3
    [2,]    2    4
    

    벡터와 달리 체인 테이블에는 데이터가 통합되지 않습니다.list 함수를 사용하면 체인 테이블의 요소에 이름을 지정할 수 있습니다.
    > names(my_list)  my_list
    $vector
    [1] 1 2 3
    
    $matrix
         [,1] [,2]
    [1,]    1    3
    [2,]    2    4
    
    names 함수를 사용하는 것 외에 체인 테이블이 생성될 때 이름을 지정할 수 있습니다
    > my_list  my_list
    $vector
    [1] 1 2 3
    
    $matrix
         [,1] [,2]
    [1,]    1    3
    [2,]    2    4
    

    원자 변수와 귀속 변수


    체인 테이블의 특성 때문에 체인 테이블의 원소는 여전히 하나의 체인 테이블이 될 수 있기 때문에 체인 테이블은 귀속할 수 있는 변수로 여겨질 수 있다.namesis.atomic 함수를 사용하여 변수의 유형을 판단할 수 있음
    > is.atomic(list())
    [1] FALSE
    > is.atomic(numeric())
    [1] TRUE
    

    체인 테이블의 길이와 연산


    체인 테이블의 길이는 그것의 맨 윗부분 원소의 수량과 관계가 있다.
    > length(my_list)
    [1] 2
    

    체인표는 행렬처럼 차원, 행수, 열수 등의 정보를 측정할 수 없지만 유사한 이름의 함수를 제공한다.
    > nrow(my_list)
    NULL
    > NROW(my_list)
    [1] 2
    > NCOL(my_list)
    [1] 1
    

    나무의 영혼의 두 함수.
    연산에 관하여: 체인 테이블은 벡터처럼 그 대상에 직접 연산할 수 없다.
    > 1:4 + 2:5
    [1] 3 5 7 9
    > list(c(1:4))+list(c(2:5))
    
    # Error in list(c(1:4)) + list(c(2:5)):  
    

    체인 테이블에 직접 있는 연산은 오류를 알려 줍니다.
    연산할 데이터를 벡터로 변환해야 결과를 정상적으로 연산할 수 있습니다.예:
    > list(c(1:4))[[1]]+list(c(2:5))[[1]]
    [1] 3 5 7 9
    

    체인 테이블의 인덱스 작업


    체인 테이블 구조가 다음과 같다고 가정하다
    > my_list 

    벡터 작업과 유사하게 네모난 괄호 형식의 색인을 사용하여 요소를 얻을 수 있습니다.
    > my_list[1:2]
    $first
    [1] 1
    
    $second
    [1] 2
    
    > my_list[-3]
    $first
    [1] 1
    
    $second
    [1] 2
    
    > my_list['first']
    $first
    [1] 1
    
    > my_list[c(T,F,F)]
    $first
    [1] 1
    

    ** 참고: ** 색인을 통해 가져온 객체는 여전히 체인 테이블입니다.만약 우리가 대응하는 내용을 얻으려면 이중 중괄호를 사용해야 한다.
    > typeof(my_list[1])
    [1] "list"
    > typeof(my_list[[1]])
    [1] "double"
    
    is.recursive 출력 형식의 이름을 사용하는 것 외에 논리 연산 함수typeof로 현재 체인 테이블 형식인지 판단할 수 있습니다.
    네모난 괄호 인덱스를 사용하여 대상을 얻을 수 있을 뿐만 아니라, is.list 이름을 붙여서 대응하는 요소를 찾을 수 있습니다. 주의: 유일하기만 하면 이름의 약어를 사용할 수 있습니다.
    > l  l$other
    [1]  9 10 11 12
    > l$o
    [1]  9 10 11 12
    > l$same
    NULL
    
    $ 기호의 작용은 값을 취하는 것으로 이중 중괄호와 같다
    > typeof(l['other']) == typeof(l$other)
    [1] FALSE
    > typeof(l[['other']]) == typeof(l$other)
    [1] TRUE
    

    체인 테이블과 벡터의 전환

    $ 함수는 유형의 전환을 실현할 수 있다.
    > as.list(1:4)
    [[1]]
    [1] 1
    
    [[2]]
    [1] 2
    
    [[3]]
    [1] 3
    
    [[4]]
    [1] 4
    
    > as.vector(list(1:4))
    [[1]]
    [1] 1 2 3 4
    
    > as.vector(list(a=1:2,b=3:4))
    $a
    [1] 1 2
    
    $b
    [1] 3 4
    
    > unlist(list(a=1:2,b=3:4))
    a1 a2 b1 b2 
     1  2  3  4 
    

    체인 시계의 결합

    as.* 함수는 체인 테이블 표시 결합에 응용할 수 있다.사용 방식은 다음과 같다.
    > com_list  com_list
    [[1]]
    [1] 1 2 3
    
    [[2]]
    [1] 4
    
    > typeof(com_list)
    [1] "list"
    

    매트릭스 함수c 또는 cbind를 사용하면 체인 테이블의 연결을 실현할 수 있다
    > cbind(
    +   list(a = 1, b = 2),
    +   list(c = 3, d = 4)
    + )
      [,1] [,2]
    a 1    3   
    b 2    4   
    > rbind(
    +   list(a = 1, b = 2),
    +   list(c = 3, d = 4)
    + )
         a b
    [1,] 1 2
    [2,] 3 4
    

    Data Frame


    데이터 상자는 매트릭스와 유사하지만 형식이 같을 필요는 없는 표 구조의 대상이다.

    데이터 상자 객체 만들기

    rbind 함수를 사용하면 데이터 상자 대상을 만들 수 있습니다.
    > data.frame(
    +   x = 1,
    +   y = 2:3,
    +   z = 4:7
    + )
      x y z
    1 1 2 4
    2 1 3 5
    3 1 2 6
    4 1 3 7
    

    기본 데이터 상자 작업


    전치
    > df  df
      x y z
    1 1 2 4
    2 1 3 5
    3 1 2 6
    4 1 3 7
    > t(df)
      [,1] [,2] [,3] [,4]
    x    1    1    1    1
    y    2    3    2    3
    z    4    5    6    7
    

    열 병합
    한 데이터 상자를 다른 데이터 상자의 오른쪽에 추가
    > df1  df2  cbind(df1, df2)
      x y z a b
    1 1 2 4 a e
    2 1 3 5 b f
    3 1 2 6 c g
    4 1 3 7 d h
    

    행 병합
    두 개의 데이터 상자를 줄에 따라 확장하는 방식으로 추가
    > df1  df2  rbind(df1, df2)
      x y z
    1 1 2 4
    2 1 3 5
    3 1 2 6
    4 1 3 7
    5 1 4 7
    6 2 5 8
    7 3 6 9
    

    조건부 병합
    > df1  df2  merge(df1, df2, by = 'names')
       names price  color
    1  apple   6.9    red
    2 orange   8.9 orange
    

    좋은 웹페이지 즐겨찾기