ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [R] readr 패키지
    데이터 분석/텍스트 분석 2022. 4. 1. 06:27

    언어 R에서 readr 패키지에 대해 알아보았다.

     

    설치

    setwd("C:/Users/사용자/")
    install.packages('readr') # 'readr' 패키지 설치
    library(readr) # 'readr' 패키지 실행

    'tidyverse' 패키지를 설치할 경우 'readr' 패키지를 포함한 여러 패키지를 함께 설치할 수 있다.

     

    파일 읽기

    write_file("A|B|C\n1|2|3\n4|5|NA", file = "file.txt")
    read_del <- read_delim("file.txt",delim = "|")
    # Files must end with a newline
    # Rows: 0 Columns: 0
    
    write_file("A|B|C\n1|2|3\n4|5|NA\n", file = "file.txt")
    read_del <- read_delim("file.txt",delim = "|")
    # Rows: 2 Columns: 3                                                                                         
    # -- Column specification ------------------------------------------------
    # Delimiter: "|"
    # dbl (3): A, B, C
    
    read_del
    # A tibble: 2 x 3
          A     B     C
      <dbl> <dbl> <dbl>
    1     1     2     3
    2     4     5    NA
    
    class(read_del)
    [1] "spec_tbl_df" "tbl_df"      "tbl"         "data.frame" 
    
    write_file("A,B,C\n1,2,3\n4,5,NA\n", file = "csvfile.csv")
    read_csv("csvfile.csv")
    
    write_file("A;B;C\n1,5;2;3\n4,5;5;NA\n", file = "csvfile2.csv")
    read_csv2("csvfile2.csv")
    
    write_file("A\tB\tC\n1\t2\t3\n4\t5\tNA\n", file = "tsvfile.tsv")
    read_tsv("tsvfile.tsv")
    read_fwf("tsvfile.tsv", fwf_widths(c(2, 2, NA)))

    read_delim()은 구분자를 지정해서 파일을 읽어올 수 있다. delim 속성을 통해서 구분자를 지정하지 않을 경우 자동으로 구분자를 고려해서 file을 불러온다

    read_csv()는 구분자가 ","로 되어있는 파일을 읽어올 수 있다.

    read_csv2()는 구분자가 ";"로 되어있는 파일을 읽어올 수 있다.

    read_tsv()는 구분자가 "\t"(tab, 탭)으로 되어있는 파일을 읽어올 수 있다.

    read_fwf()의 fwf는 fixed width file을 의미한다. 고정된 너비를 가지고 있다는 뜻으로 구분 형태가 규칙적인 파일을 읽어올 수 있다

     + "11aa22bb33cc"의 경우 수와 알파벳이 2개씩 적힌 규칙이 있다.

    write_file("11aa22bb33cc/n", file = "example.csv")
    read_fwf("example.csv",fwf_widths(c(2,2,2,2,2,2)))
    # A tibble: 1 x 6
         X1 X2       X3 X4       X5 X6   
      <dbl> <chr> <dbl> <chr> <dbl> <chr>
        11 aa       22 bb       33 cc

    파일 쓰기

    x=data.frame(ch1=c('A','B','C'),nu1=c(1,2,3),nu2=c(4,5,NA))
    write_delim(x, 'delimfile.txt') # 구분자 " "
    write_delim(x, 'delimfile2.txt',delim="|") # 구분자 "|"
    write_csv(x, 'csvfile.csv') # 구분자 ","
    write_csv2(x, 'csv2file.csv') # 구분자 ";"
    write_tsv(x, 'tsvfile.tsv') # 구분자 "\t"

    출처: data import with the tidyverse::CHEAT SHEET

    댓글

Designed by Tistory.