포스팅 목차
[데이터 관리] 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 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 |
반응형
'통계프로그램 비교 시리즈 > 데이터 전처리 비교' 카테고리의 다른 글
[데이터 관리] 11. Aggregating Or Summarizing 데이터 (0) | 2022.01.15 |
---|---|
[데이터 관리] 10. Joining & Merging 데이터 프레임 (0) | 2022.01.14 |
[데이터 관리] 8. By 또는 Split 파일 프로세싱 (0) | 2022.01.11 |
[데이터 관리] 7. 변수 Keeping과 Dropping (0) | 2022.01.10 |
[데이터 관리] 6. 관측값 포맷팅 & 관측값 일괄 변경하기 (0) | 2022.01.10 |
댓글