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

[데이터 관리] 9. Stacking & Concatenating & Adding Data Sets

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

[데이터 관리] 9. Stacking & Concatenating & Adding Data Sets (Union / 상하 결합)

 


1. Proc SQL

  • Stacking(Unoin) 작업을 위하여 실습 데이터 생성
SAS Programming
proc sql;
  create table males as
    select *
    from   BACK.mydata
    where  gender='m';

  select * from males;
quit;

 

Results
id  workshop  gender          q1        q2        q3        q4
--------------------------------------------------------------
 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

 

  • Stacking(Unoin) 작업을 위하여 실습 데이터 생성
SAS Programming
proc sql;
  create table females as
    select *
    from   BACK.mydata
    where  gender='f';

  select * from females;
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

 


  • UNION을 이용하여 두 개의 데이터 세트 세로 결합;
SAS Programming
proc sql;
  create table both as
    select *
    from   males

    UNION

    select *
    from   females;

  select * from both;

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         1  m                5         3         4         4
  8         2  m                4         5         5         5

 

 


2. SAS Programming

  • Stacking / Concatenating / Adding Data Sets 위한 SAS 프로그램.
SAS Programming
DATA males;  

 SET BACK.mydata;

     WHERE gender='m';

RUN;

 

Results
OBS    id    workshop    gender    q1    q2    q3    q4

 1      5        1         m        4     5     2     4

 2      6        2         m        5     4     5     5

 3      7        1         m        5     3     4     4

 4      8        2         m        4     5     5     5

 


 

SAS Programming
DATA females;

 SET BACK.mydata;

     WHERE gender='f';

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

 


  • 분리한 데이터 세트 세로 합치기;
SAS Programming
DATA both;
 SET males females;
RUN;

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

  • Stacking / Concatenating / Adding Data Sets 위한 SPSS 프로그램.
SPSS Programming
GET FILE='C:\mydata.sav'.
SELECT IF(gender = "f").
SAVE OUTFILE='C:\females.sav'.

EXECUTE .

GET FILE='C:\mydata.sav'.
SELECT IF(gender = "m").
SAVE OUTFILE='C:\males.sav'.

EXECUTE .

GET FILE='C:\females.sav'.
ADD FILES /FILE=*
 /FILE='C:\males.sav'.

EXECUTE.

 

 


4. R Programming (R-PROJECT)

  • Stacking / Concatenating / Adding Data Sets 위한 R-PROJECT 프로그램.
R Programming
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

library(tidyverse)
library(psych)
load(file="C:/work/data/mydata.Rdata")

withmooc = mydata

attach(withmooc) # mydata를 기본 데이터 세트로 지정.

withmooc

 

Results
R[write to console]: The following objects are masked from withmooc (pos = 3):

    gender, q1, q2, q3, q4, workshop




  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

 


  • 데이터 프레임에서 남성을 선택하여 데이터 프레임 생성.
R Programming
%%R

males <- mydata[gender=="m", ]

males

 

Results
  workshop gender q1 q2 q3 q4
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

 


  • 데이터 프레임에서 여성을 선택하여 데이터 프레임 생성.
R Programming
%%R

females <- mydata[gender=="f", ]

females

 

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

 


  • Rbind 함수를 이용하여 두 개의 데이터를 세로 연결.
R Programming
%%R

both<-rbind(females,males)

both

 

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
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

library(tidyverse)
load(file="C:/work/data/mydata.Rdata")

withmooc = mydata

attach(withmooc) # mydata를 기본 데이터 세트로 지정.

withmooc

 

Results
R[write to console]: The following objects are masked from withmooc (pos = 3):

    gender, q1, q2, q3, q4, workshop


R[write to console]: The following objects are masked from withmooc (pos = 5):

    gender, q1, q2, q3, q4, workshop




  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

 

  • Stacking / Concatenating / Adding Data Sets 위한 R-PROJECT 프로그램.
  • 데이터 프레임에서 남성을 선택하여 데이터 프레임 생성.
R Programming
%%R

males <- withmooc %>%
  filter(gender == "m")

males

 

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

 


  • 데이터 프레임에서 여성을 선택하여 데이터 프레임 생성.
R Programming
%%R

females <- withmooc %>%
  filter(gender == "f") 

females

 

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

 


R Programming
%%R

females %>%
  bind_rows(males)

 

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

 

 


6. Python - Pandas

 

Python Programming
import pandas as pd
import numpy as np
import sweetviz as sv

mydata = pd.read_csv("C:/work/data/mydata.csv",sep=",",
                     dtype={'id':object,'workshop':object,
                            'q1':int, 'q2':int, 'q3':float, 'q4':int},
                     na_values=['NaN'],skipinitialspace =True)

withmooc= mydata.copy()

withmooc

 

Results
	id	workshop	gender	q1	q2	q3	q4
0	1	1		f	1	1	5.0	1
1	2	2		f	2	1	4.0	1
2	3	1		f	2	2	4.0	3
3	4	2		f	3	1	NaN	3
4	5	1		m	4	5	2.0	4
5	6	2		m	5	4	5.0	5
6	7	1		m	5	3	4.0	4
7	8	2		m	4	5	5.0	5

 


  • 데이터 프레임에서 남성을 선택하여 데이터 프레임 생성.
Python Programming
males = withmooc[withmooc['gender'] == 'm']
males

 

Results
	id	workshop	gender	q1	q2	q3	q4
4	5	1		m	4	5	2.0	4
5	6	2		m	5	4	5.0	5
6	7	1		m	5	3	4.0	4
7	8	2		m	4	5	5.0	5

 


  • 데이터 프레임에서 여성을 선택하여 데이터 프레임 생성.
Python Programming
females = withmooc.loc[withmooc['gender'] == 'f', :]
females

 

Results
	id	workshop	gender	q1	q2	q3	q4
0	1	1		f	1	1	5.0	1
1	2	2		f	2	1	4.0	1
2	3	1		f	2	2	4.0	3
3	4	2		f	3	1	NaN	3

 


  • Rbind 함수를 이용하여 두 개의 데이터를 세로 연결.
Python Programming
both = pd.concat([females, males])
both

 

Results
	id	workshop	gender	q1	q2	q3	q4
0	1	1		f	1	1	5.0	1
1	2	2		f	2	1	4.0	1
2	3	1		f	2	2	4.0	3
3	4	2		f	3	1	NaN	3
4	5	1		m	4	5	2.0	4
5	6	2		m	5	4	5.0	5
6	7	1		m	5	3	4.0	4
7	8	2		m	4	5	5.0	5
 

 


7. Python - dfply

 

Python Programming
import pandas as pd
from dfply import *

mydata   = pd.read_csv("c:/work/data/mydata.csv",sep=",",
                                            dtype={'id':object,'workshop':object,
                                                   'q1':int, 'q2':int, 'q3':float, 'q4':int},
                                            na_values=['NaN'],skipinitialspace =True)

withmooc= mydata.copy()

# 모든 변수 선택하기.
withmooc

 

Results
	id	workshop	gender	q1	q2	q3	q4
0	1	1		f	1	1	5.0	1
1	2	2		f	2	1	4.0	1
2	3	1		f	2	2	4.0	3
3	4	2		f	3	1	NaN	3
4	5	1		m	4	5	2.0	4
5	6	2		m	5	4	5.0	5
6	7	1		m	5	3	4.0	4
7	8	2		m	4	5	5.0	5

 


  • Stacking / Concatenating / Adding Data Sets 위한 R-PROJECT 프로그램.
  • 데이터 프레임에서 남성을 선택하여 데이터 프레임 생성.
Python Programming
males = mydata >> row_slice(X.gender == "m")

males

 

Results
	id	workshop	gender	q1	q2	q3	q4
4	5	1		m	4	5	2.0	4
5	6	2		m	5	4	5.0	5
6	7	1		m	5	3	4.0	4
7	8	2		m	4	5	5.0	5

 


  • 데이터 프레임에서 여성을 선택하여 데이터 프레임 생성.
Python Programming
females = mydata >> row_slice(X.gender == "f")

females

 

Results
	id	workshop	gender	q1	q2	q3	q4
0	1	1		f	1	1	5.0	1
1	2	2		f	2	1	4.0	1
2	3	1		f	2	2	4.0	3
3	4	2		f	3	1	NaN	3

 


 

Python Programming
 
females >> bind_rows(males)

 

Results
	id	workshop	gender	q1	q2	q3	q4
0	1	1		f	1	1	5.0	1
1	2	2		f	2	1	4.0	1
2	3	1		f	2	2	4.0	3
3	4	2		f	3	1	NaN	3
4	5	1		m	4	5	2.0	4
5	6	2		m	5	4	5.0	5
6	7	1		m	5	3	4.0	4
7	8	2		m	4	5	5.0	5
 


 

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

댓글