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

통계프로그램 비교 시리즈 – 4. 프로그램 내에서 TEXT 데이터 읽기

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

포스팅 목차

    4. 프로그램 내에서 TEXT 데이터 읽기

     


    1. Proc SQL

    • Insert inot를 사용하여서 직접 값을 지정하여 읽기.
    • 변수명, 변수 타입을 지정후에, 각 해당값을 테이블에 넣는다.
    SAS Programming
    proc sql;
      create table mydata
             ( id       char(1),
               workshop char(1),
               gender   char(1),
               q1       num,
               q2       num,
               q3       num,
               q4       num);
      insert into mydata
             values('1','1','f',1,1,5,1)
             values('2','2','f',2,1,4,1)
             values('3','1','f',2,2,4,3)
             values('4','2','f',3,1,.,3)
             values('5','1','m',4,5,2,4)
             values('6','2','m',5,4,5,5)
             values('7','2','m',4,5,5,5)
             values('8','2','m',4,5,5,5);
      select * from mydata;
    quit;

     

    Results
    id  workshop  gender        q1        q2        q3        q4
    1   1         f              1         1         5         1
    2   2         f              2         1         4         1
    3   1         f              2         2         4         3
    4   2         f              3         1         .         3
    5   1         m              4         5         2         4
    6   2         m              5         4         5         5
    7   2         m              4         5         5         5
    8   2         m              4         5         5         5

     

     


    2. SAS Programming

    • SAS 프로그램 상에서 데이터 읽기
    SAS Programming
    * 첫번째의 변수 관측치는 제외하고, 2번째 관측값부터 읽기.;
    
    DATA BACK.mydata;
    INFILE DATALINES DELIMITER = ','
      MISSOVER DSD firstobs=2 ;
    INPUT id workshop gender $ q1 q2 q3 q4;
    DATALINES;
    id,workshop,gender,q1,q2,q3,q4
     1,1,f,1,1,5,1
     2,2,f,2,1,4,1
     3,1,f,2,2,4,3
     4,2,f,3,1, ,3
     5,1,m,4,5,2,4
     6,2,m,5,4,5,5
     7,1,m,5,3,4,4
     8,2,m,4,5,5,5
    ;
    
    PROC PRINT; RUN;

     

    Results
    OBS    id    workshop    gender    q1    q2    q3    q4
     1      1        1         f        1     1     5     1
     2      2        2         f        2     1     4     1
     3      3        1         f        2     2     4     3
     4      4        2         f        3     1     .     3
     5      5        1         m        4     5     2     4
     6      6        2         m        5     4     5     5
     7      7        1         m        5     3     4     4
     8      8        2         m        4     5     5     5

     


    3. SPSS

     

    SPSS Programming
    DATA LIST / id 2 workshop 4 gender 6 (A) 
     q1 8  q2 10  q3 12  q4 14.
    BEGIN DATA.
     1,1,f,1,1,5,1
     2,2,f,2,1,4,1
     3,1,f,2,2,4,3
     4,2,f,3,1, ,3
     5,1,m,4,5,2,4
     6,2,m,5,4,5,5
     7,1,m,5,3,4,4
     8,2,m,4,5,5,5
    END DATA.
    LIST.
    SAVE OUTFILE='c:\mydata.sav'.
    EXECUTE.

     


    4. R Programming

     

    • R 프로그램에서 데이터 저장하기
    R Programming
    from rpy2.robjects import r
    %load_ext rpy2.ipython

     

    Results
    C:\Users\BACK\anaconda3\lib\site-packages\rpy2\robjects\packages.py:365: UserWarning: The symbol 'quartz' is not in this R namespace/package.
      warnings.warn(

     

     

    R Programming
    %%R
    # 하나의 긴 텍스트 문자열로 데이터 저장.
    
    mystring<-("id,workshop,gender,q1,q2,q3,q4
    1,1,f,1,1,5,1
    2,2,f,2,1,4,1
    3,1,f,2,2,4,3
    4,2,f,3,1, ,3
    5,1,m,4,5,2,4
    6,2,m,5,4,5,5
    7,1,m,5,3,4,4
    8,2,m,4,5,5,5")
    
    # 파일 위치 대신에 textConnection 함수를 이용하여서 프로그램 내의 mystring(긴 문자 벡터)을 텍스트 파일로 읽기.
    
    mydata<-read.table(textConnection(mystring),
                        header=TRUE,sep=",",row.names="id")
    
    print(mydata)
    
    # 디스크에 파일을 써서 저장하기.
    # save.image(file="c:\\mydata.Rdata")

     

    Results
      workshop gender q1 q2 q3 q4
    1        1      f  1  1  5  1
    2        2      f  2  1  4  1
    3        1      f  2  2  4  3
    4        2      f  3  1 NA  3
    5        1      m  4  5  2  4
    6        2      m  5  4  5  5
    7        1      m  5  3  4  4
    8        2      m  4  5  5  5

     


    5. R - Tidyverse

     

    • 예제 데이터
    R Programming
    %%R
    library(tidyverse)
    
    mydata <- data.frame(id       = c('1','2','3','4','5'),
                         workshop = c('1', '2','1', '2','1'),
                         gender   = c('f', 'f','f','f','m'),
                         q1       = c(1,2,2,3,4),
                         q2       = c(1,1,2,1,5),
                         q3       = c(5,4,4,NA,2),
                         q4       = c(1,1,3,3,4) )
    
    print(mydata)
    
    # readr 패키지 - CSV 파일로 저장하기.
    write.csv(mydata, file = "C:/WORK/test.csv", row.names=FALSE)

     

    Results
      id workshop gender q1 q2 q3 q4
    1  1        1      f  1  1  5  1
    2  2        2      f  2  1  4  1
    3  3        1      f  2  2  4  3
    4  4        2      f  3  1 NA  3
    5  5        1      m  4  5  2  4

     


    6. Python - Pandas

     

    Python Programming
    import pandas as pd
    
    my_dict = {"id": ['1','2','3','4','5'], 
               "workshop": ['1', '2','1', '2','1'], 
               "gender": ['f', 'f','f','f','m'],
               "q1": ['1', '2','2','3','4'],
               "q2": ['1', '1','2','1','5'],
               "q3": ['5', '4','4','','2'],
               "q4": ['1', '1','3','3','4']
              }
    mydata = pd.DataFrame(my_dict)
    mydata

     

    Results
     	id	workshop	gender	q1	q2	q3	q4
    0	1	1		f	1	1	5	1
    1	2	2		f	2	1	4	1
    2	3	1		f	2	2	4	3
    3	4	2		f	3	1	 	3
    4	5	1		m	4	5	2	4
     

     

    Python Programming
    # CSV 파일로 저장하기.
    mydata.to_csv("c:/work/mydata_pd.csv", index=False)

     

    Python Programming
    # pickle로 데이터(객체) 저장 및 불러오기
    mydata.to_pickle("c:/work/mydata_df.pkl")
    pkl_read = pd.read_pickle("c:/work/mydata_df.pkl")
    
    pkl_read

     

    Results
     	id	workshop	gender	q1	q2	q3	q4
    0	1	1		f	1	1	5	1
    1	2	2		f	2	1	4	1
    2	3	1		f	2	2	4	3
    3	4	2		f	3	1	 	3
    4	5	1		m	4	5	2	4
     

     

    Python Programming
    import sqlite3
    
    # SQLite3 DB로 저장하기
    con = sqlite3.connect("c:/work/sql_data.db")
    mydata.to_sql("BTable", con, if_exists="append", index=False)
    con.close()
    
    # SQLite3 DB 불러오기
    con = sqlite3.connect("c:/work/sql_data.db")
    DB_mydata = pd.read_sql("SELECT * FROM BTable", con)
    con.close()
    
    DB_mydata

     

    Results
     	id	workshop	gender	q1	q2	q3	q4
    0	1	1		f	1	1	5	1
    1	2	2		f	2	1	4	1
    2	3	1		f	2	2	4	3
    3	4	2		f	3	1	 	3
    4	5	1		m	4	5	2	4

     


    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 예제로 만나는 테이블 데이터 처리 방법 리스트 링크
    반응형

    댓글