본문 바로가기
통계프로그램 비교 시리즈/데이터 전처리 비교

통계프로그램 비교 시리즈 – 6. 고정 길이 텍스트 파일 읽기 (두개의 행에 하나의 관측치존재)

by 기서무나구물 2022. 1. 5.

포스팅 목차

    6. 고정 길이 텍스트 파일 읽기 (두개의 행에 하나의 관측치존재)

     


    1. Proc SQL

     


    2. SAS Programming

     

    • 고정 길이 텍스트 파일을 읽기 위한 SAS 프로그램.(관측치가 2개의 열에 존재.)
    • 두번째 레코드에서는 처음 3개의 변수는 생략하고 q변수만 읽는다.
    SAS Programming
    DATA temp;
         INFILE 'c:\data\mydata.txt' MISSOVER;
         INPUT  #1 id 1-2 workshop 3 gender $ 4  q1 5  q2 6  q3 7  q4 8
                #2 q5 5  q6 6  q7 7  q8 8;
    run;
    
    PROC PRINT;
    RUN;

     

    Results
    OBS    id    workshop    gender    q1    q2    q3    q4    q5    q6    q7    q8
     1      1        1         f        1     1     5     1     2     1     4     1
     2      3        1         f        2     2     4     3     3     1     .     3
     3      5        1         m        4     5     2     4     5     4     5     5
     4      7        1         m        5     3     4     4     4     5     5     5

     


    3. SPSS

     

    • 고정 길이 텍스트 파일을 읽기 위한 SPSS 프로그램.(관측치가 2개의 열에 존재.)
    SPSS Programming
    DATA LIST FILE='c:\mydata.txt' RECORDS=2
         /1 id 1-2 workshop 3 gender 4 (A)  q1 5  q2 6  q3 7  q4 8
         /2                                 q5 5  q6 6  q7 7  q8 8.
    
    LIST.
    EXECUTE.

     


    4. R Programming (R-PROJECT)

    • 고정 길이 텍스트 파일을 읽기 위한 R-PROJECT 프로그램.(관측치가 2개의 열에 존재.)
    R Programming
    # 파이썬에서 R을 사용하기 위하여 rpy2 실행 (하단에서 실행 안되는 경우 재실행 )
    # %%R 실행 시 에러 : UsageError: Cell magic %%R not found.
    
    from rpy2.robjects import r
    %load_ext rpy2.ipython

     

    Results
    The rpy2.ipython extension is already loaded. To reload it, use:
      %reload_ext rpy2.ipython

     

     

    R Programming
    %%R
    # 문자열 변수에 파일의 이름 저장.
    myfile<-("c:/work/mydata.txt")
    
    print(myfile)

     

    Results
    [1] "c:/work/mydata.txt"

     

     

    R Programming
    %%R
    # 벡터에 변수(열) 이름 저장
    
    myVariableNames<-c("id","group","gender","x1","x2","x3","x4",
                                             "x5","x6","x7","x8")
    print(myVariableNames)

     

    Results
     [1] "id"     "group"  "gender" "x1"     "x2"     "x3"     "x4"     "x5"    
     [9] "x6"     "x7"     "x8"    

     

     

    R Programming
    %%R
    # 다중 레코드에 대하여, 각 레코드의 변수 길이를 2개의 벡터에 저장.
    # 두번째 레코드(벡터)에서 음수는 삭제될 변수 지정
    
    myRecord1Widths<-c( 2, 1, 1,1,1,1,1)
    myRecord2Widths<-c(-2,-1,-1,1,1,1,1)
    
    # 단일 리스트에 위에서 변수의 길이를 저장한 벡터들을 모두 조합하여 저장한다.
    myVariableWidths<-list(myRecord1Widths,myRecord2Widths)
    
    print(myVariableWidths)

     

    Results
    [[1]]
    [1] 2 1 1 1 1 1 1
    
    [[2]]
    [1] -2 -1 -1  1  1  1  1

     

     

    R Programming
    %%R
    
    # 위에서 지정한 변수들과 변수명으로 데이터 읽기:
    
    mydata<-read.fwf( file=myfile,
                      width=myVariableWidths, 
                      col.names=myVariableNames,
                      row.names="id",
                      na.strings="999",
                      fill=TRUE,
                      strip.white=TRUE)
    
    mydata

     

    Results
      group gender x1 x2 x3 x4 x5 x6 x7 x8
    1     1      f  1  1  5  1  2  1  4  1
    3     1      f  2  2  4  3  3  1 NA  3
    5     1      m  4  5  2  4  5  4  5  5
    7     1      m  5  3  4  4  4  5  5  5

     


    5. R - Tidyverse

     


    6. Python - Pandas

     


    7. Python - dfply

     


     


     

    통계프로그램 비교 목록(Proc sql, SAS, SPSS, R 프로그래밍, R Tidyverse, Python Pandas, Python Dfply)
    [Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table] 오라클 함수와 R & Python 비교 사전 목록 링크
    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE]
    SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크
    반응형

    댓글