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

통계프로그램 비교 시리즈 – 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 예제로 만나는 테이블 데이터 처리 방법 리스트 링크
반응형

댓글