ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [R][Tutorial] 데이터프레임 추가정리
    개발 이야기/R 2025. 4. 24. 12:58

    데이터프레임에 관해 다루는 경우가 많아서 추가적으로 정리한다. 

     

    Dataframe

     

    데이터프레임은 matrix와 달리 여러 자료형을 담을수 있는 데이터 구조이다. 

    생성은 다음과 같다. 

    data.frame(df, stringsAsFactors = TRUE)

    이때 stringAsFactors는 문자열을 factor로 자동으로 변환하는것을 의미한다. 

    factor는 앞서 살핀것처럼 범주형을 처리하기 위한 변수이다. 

     

    # Create a, b, c, d variables
    a <- c(10,20,30,40)
    b <- c('book', 'pen', 'textbook', 'pencil_case')
    c <- c(TRUE,FALSE,TRUE,FALSE)
    d <- c(2.5, 8, 10, 7)
    # Join the variables to create a data frame
    df <- data.frame(a,b,c,d)
    df

     

    위와 같이 데이터프레임을 생성한다면(벡터를 합하면), 각 벡터들은 열벡터로 행렬에서 구성된다. 즉 

    ##   a       b c d
    ## 1  1        book  TRUE   2.5
    ## 2  2         pen  TRUE   8.0
    ## 3  3    textbook  TRUE  10.0
    ## 4  4 pencil_case FALSE   7.0

     

    위의 결과가 나온다. 

     

    이때 만일 각 열의 이름을 붙이고 싶다면, names를 이용하자. names(df) = c(열이름1, 열이름2, ..)로 사용하면 된다. 

    str():  구조 알아보기

    은근 많이 쓴다. str()을 이용하면 데이터프레임의 구조를 알려준다.

    str(df)
    ## 'data.frame':    4 obs. of  4 variables:
    ##  $ ID   : num  10 20 30 40
    ##  $ items: Factor w/ 4 levels "book","pen","pencil_case",..: 1 2 4 3
    ##  $ store: logi  TRUE FALSE TRUE FALSE
    ##  $ price: num  2.5 8 10 7

     

    만일 데이터프레임 안에 또다른 벡터안에 벡터식의 복잡한 구조일 때 보기 좋다. 

     

    df[행:열]

    데이터 프레임은 위와 같이 두가지 행, 열로 구성되며 그 순서는 다음과 같다. 이때 1부터 시작한다는 것에 유의하자. 

    또한 숫자 대신 이름을 직접 지정해서 사용도 가능하다. 

     

    $

    $를 통해서 데이터프레임의 차원..? 어쨌든 요소를 하나씩 추가 선택, 지정 가능하다.

    예를들어 우리가 열을 하나 추가하고 싶을 때는 

    # Create a new vector
    quantity <- c(10, 35, 40, 5)
    ​
    # Add `quantity` to the `df` data frame
    df$quantity <- quantity
    df

     

    위 코드처럼 쓸 수 있고,

     

    반대로 quanaity의 값을 보고 싶을때는

    df$quntatiy

    로 작성하면 된다. 

     

    subset()

    데이터프레임의 특정 조건을 지정하여 조건문을 만족하는 부분집합을 정의할 수 있다. 

    subset(df, subset = a > 5)

    order()

    데이터 분석에서 데이터 세트의 특정 변수에 따라 데이터를 sorting하기 위해 사용하는 sort()역할을 R에서 하는 함수. 

    data_frame[order(df$c, decreasing = FALSE, na.last = TRUE),]

     

    이때 각 인자 중 x는 데이터프레임의 특정열, 즉 기준이 될 열을, deacrieasing은 큰값부터 정렬하는 것을, na.last는 na값을 정렬 순서의 마지막으로 하는 옵션이다. 

     

     

     

     

Designed by Tistory.