programming language/R

R에서 matrix와 data.frame의 차이

눈곱만큼도모름 2024. 8. 31. 04:39
728x90
반응형

R에서 matrixdata.frame은 모두 2차원 데이터 구조를 다루기 위한 중요한 객체 유형이지만, 그 기능과 사용 용도가 다릅니다. 이 두 구조는 몇 가지 중요한 차이점을 가지고 있습니다.

1. 데이터 타입

  • Matrix: 행렬(matrix)은 단일 데이터 타입을 가지는 2차원 배열입니다. 행렬의 모든 요소는 동일한 데이터 타입(예: 모두 숫자, 모두 문자 등)을 가져야 합니다.

    • 예시:
      mat <- matrix(1:6, nrow = 2, ncol = 3)
      print(mat)
      출력:
           [,1] [,2] [,3]
      [1,]    1    3    5
      [2,]    2    4    6
      이 행렬은 숫자로만 구성되어 있습니다.
  • Data Frame: 데이터 프레임(data.frame)은 여러 데이터 타입을 가질 수 있는 2차원 구조입니다. 각 열(column)은 서로 다른 데이터 타입(예: 첫 번째 열은 숫자, 두 번째 열은 문자 등)을 가질 수 있습니다.

    • 예시:
      df <- data.frame(
        Name = c("Alice", "Bob", "Charlie"),
        Age = c(25, 30, 35),
        Gender = c("F", "M", "M")
      )
      print(df)
      출력:
          Name Age Gender
      1  Alice  25      F
      2    Bob  30      M
      3 Charlie  35      M
      이 데이터 프레임은 문자형, 숫자형, 문자형 열을 포함하고 있습니다.

2. 사용 용도

  • Matrix: 주로 수학적 계산(예: 행렬 연산, 선형 대수 등)이나 단일 유형의 대규모 데이터(예: 이미지 데이터 처리 등)를 다룰 때 사용됩니다.
  • Data Frame: 일반적으로 통계 분석이나 데이터 분석 작업에서 널리 사용됩니다. 다양한 데이터 타입을 한 구조 내에서 처리할 수 있기 때문에 실제 데이터셋(예: CSV 파일, 데이터베이스 테이블)을 다룰 때 많이 사용됩니다.

3. 열(column)과 행(row) 이름

  • Matrix: 행렬은 선택적으로 행과 열에 이름을 붙일 수 있지만, 이는 필수가 아닙니다.

    • 예시:
      mat <- matrix(1:6, nrow = 2, ncol = 3, dimnames = list(c("row1", "row2"), c("col1", "col2", "col3")))
      print(mat)
      출력:
            col1 col2 col3
      row1    1    3    5
      row2    2    4    6
  • Data Frame: 데이터 프레임의 열은 항상 이름을 가지며, 각 열 이름은 데이터를 명확하게 설명하기 위해 사용됩니다.

4. 확장성

  • Matrix: 행렬은 기본적으로 고정된 크기의 동일 타입 데이터를 다루는 데 적합합니다. 다양한 데이터 타입을 추가하거나 수정하는 것이 어렵습니다.
  • Data Frame: 데이터 프레임은 매우 유연하며, 새로운 열을 추가하거나 기존 열을 수정하는 것이 간편합니다. 다양한 데이터 타입을 쉽게 관리할 수 있습니다.

5. 서로 간의 변환

  • Matrix에서 Data Frame으로 변환: as.data.frame() 함수를 사용하여 행렬을 데이터 프레임으로 변환할 수 있습니다.

    • 예시:
      df_from_mat <- as.data.frame(mat)
      print(df_from_mat)
  • Data Frame에서 Matrix로 변환: as.matrix() 함수를 사용하여 데이터 프레임을 행렬로 변환할 수 있습니다. 이 경우, 데이터 프레임의 모든 열이 동일한 데이터 타입으로 강제 변환됩니다.

    • 예시:
      mat_from_df <- as.matrix(df)
      print(mat_from_df)

요약

  • Matrix: 동일한 데이터 타입의 2차원 배열로, 수학적 계산에 적합.
  • Data Frame: 다양한 데이터 타입을 허용하는 2차원 구조로, 데이터 분석 및 통계 작업에 적합.

이 두 구조는 각자의 장점과 용도가 있으므로, 분석하려는 데이터의 특성에 따라 적절한 구조를 선택하는 것이 중요합니다.

728x90
반응형