포스팅 목차
[변수와 관측치 선택] 1. 변수 선택하기
1. Proc SQL
- 기본적으로 Select구문 안에서 변수 선택이 가능하고, From 절 또는 Create table 절에 지정된 데이터 세트에 Keep, Drop 옵션을 지정하여서 변수 선택 가능.
SAS Programming |
proc sql;
select *
from BACK.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 1 m 5 3 4 4
8 2 m 4 5 5 5
- q변수만을 선택 후에 q1, q2, q3, q4변수를 지정하여 출력.
SAS Programming |
proc sql;
select q1,q2,q3,q4
from BACK.Mydata(keep=q:);
quit;
Results |
q1 q2 q3 q4
---------------------------------
1 1 5 1
2 1 4 1
2 2 4 3
3 1 . 3
4 5 2 4
5 4 5 5
5 3 4 4
4 5 5 5
- 세 개의 변수를 삭제 후 출력.
SAS Programming |
proc sql;
select *
from BACK.Mydata(drop=id workshop gender);
quit;
Results |
q1 q2 q3 q4
---------------------------------
1 1 5 1
2 1 4 1
2 2 4 3
3 1 . 3
4 5 2 4
5 4 5 5
5 3 4 4
4 5 5 5
- q변수 전체를 선택 후 출력.
SAS Programming |
proc sql;
select *
from BACK.Mydata(keep=q:);
quit;
- 전체 변수 선택후 q변수만을 출력.
SAS Programming |
proc sql;
create table Mydata1(keep=q:) as
select *
from BACK.Mydata;
select * from Mydata1;
quit;
Results |
q1 q2 q3 q4
--------------------------------
1 1 5 1
2 1 4 1
2 2 4 3
3 1 . 3
4 5 2 4
5 4 5 5
5 3 4 4
4 5 5 5
2. SAS Programming
- 변수 선택을 위한 SAS프로그램
SAS Programming |
* 최종 데이터를 BACK.mydata로 지정;
libname 'c:\data';
OPTIONS _LAST_=BACK.mydata;
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
SAS Programming |
PROC PRINT;
VAR workshop gender q1 q2 q3 q4;
RUN;
Results |
OBS 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
- workshop과 q4사이의 모든 변수 선택
SAS Programming |
PROC PRINT;
var workshop--q4;
RUN;
Results |
OBS 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
- q로 시작되는 변수 선택
SAS Programming |
PROC PRINT;
var workshop gender q1-q4;
RUN;
Results |
OBS 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
- 선택된 변수를 가진 데이터 생성하기.;
- q로 시작되는 모든 변수 선택;
SAS Programming |
DATA BACK.myqs;
SET BACK.mydata(KEEP=q:);
RUN;
PROC PRINT DATA=BACK.myqs;
RUN;
Results |
OBS q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 . 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
3. SPSS
- 변수 선택을 위한 SPSS프로그램.
SPSS Programming |
LIST.
LIST VARIABLES=workshop,gender,q1,q2,q3,q4.
LIST VARIABLES=workshop TO q4.
* 선택된 변수로 데이터 세트 생성.
SAVE OUTFILE='c:\myqs.sav' /KEEP=q1 TO q4.
EXECUTE.
4. R Programming (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-Project프로그램.
- 기본적으로 인덱스를 사용하여 변수를 지정할 수 있다.
R Programming |
%%R
# 데이터 로드하기.
load(file="c://work/data/mydata.Rdata")
# 모든 데이터 출력하기.
print(mydata)
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
1) INDEX를 사용한 변수 선택
- 모든 변수 선택하기.
R Programming |
%%R
print( mydata[ ])
print( mydata[ , ] )
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
- 3번째 변수(q1) 선택.
R Programming |
%%R
print(mydata[3])
Results |
q1
1 1
2 2
3 2
4 3
5 4
6 5
7 5
8 4
- 인덱스를 사용하여서 변수 q1, q2, q3, q4 선택하기 위한 방법.
R Programming |
%%R
print( mydata[ c(3,4,5,6) ] ) # 인덱스 사용.
print( mydata[ 3:6 ] ) # “:” 인식자 사용하여 인덱스 생성.
print( mydata[ -c(1,2) ] ) # 첫번째,두번째 변수를 제외.
print( mydata[ -I(1:2) ] ) # colon 인식자를 사용하여 변수 제외.
Results |
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- 반복하여서 열의 범위를 이용한다면, Numeric 벡터에 전체 범위를 저장하면 유용.
R Programming |
%%R
myindexes <- 3:6
# 인덱스 확인
print( myindexes )
Results |
[1] 3 4 5 6
R Programming |
%%R
print( mydata[myindexes] )
Results |
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- 마이너스 부호를 이용하여 3번째부터 6번째(3:6 변수)에 위치한 변수를 제외
R Programming |
%%R
print( mydata[-myindexes] )
Results |
workshop gender
1 1 f
2 2 f
3 1 f
4 2 f
5 1 m
6 2 m
7 1 m
8 2 m
- '%in%' 함수는 이름의 전체 벡터를 비교하여 일치 여부를 반환한다.
- mydata 데이터 세트에 존재하는 변수 중에서 q1~q4변수 이름과 일치 여부를 반환한다.
R Programming |
%%R
names(mydata) %in% c("q1","q2","q3","q4")
Results |
[1] FALSE FALSE TRUE TRUE TRUE TRUE
- 'which' 함수는 TRUE인 인덱스 번호를 출력한다.
- myvar 변수에 단일 인덱스를 저장.
R Programming |
%%R
myvars <- which( names(mydata) %in% c("q1","q2","q3","q4") )
print(myvars)
Results |
[1] 3 4 5 6
R Programming |
%%R
print( mydata[ ,myvars] )
Results |
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- 모든 변수에 대한 인덱스를 출력.
- 열 이름은 문자 벡터로써 mydata에 저장되어 있다.
- names함수로 변수 이름을 출력하고, data.frame함수로 데이터 프레임을 생성.
R Programming |
%%R
print( data.frame( myvars=names(mydata) ) )
Results |
myvars
1 workshop
2 gender
3 q1
4 q2
5 q3
6 q4
2) 변수명에 의해 변수 선택하기(minus 부호는 사용 불가)
- q1변수 선택.
R Programming |
%%R
mydata["q1"]
Results |
q1
1 1
2 2
3 2
4 3
5 4
6 5
7 5
8 4
- q 변수 선택
R Programming |
%%R
mydata[ c("q1","q2","q3","q4") ]
Results |
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- subset함수는 colon 인식자를 이용하여서 쉽게 연속된 변수를 선택한다.
R Programming |
%%R
print( subset(mydata, select=q1:q4) )
Results |
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- 변수 명의 리스트를 저장하여 이용.
R Programming |
%%R
myQnames<-c("q1","q2","q3","q4")
print(myQnames) #변수명 출력.
print(mydata[myQnames])
Results |
[1] "q1" "q2" "q3" "q4"
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- 이 프로그램 역시 변수 명의 리스트를 저장하는 방법이나,
- 형태 1:4로부터 자동으로 생성된 연속적인 1,2,3,4를 문자 q에 붙여서 변수명을 생성한다.
R Programming |
%%R
myQnames <-paste( "q", 1:4, sep="")
print(myQnames) # 변수명 출력
print(mydata[myQnames]) # 선택된 변수 출력
Results |
[1] "q1" "q2" "q3" "q4"
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- 인덱스에 의해 연속적인 변수 선택을 다시 설명.
- 여기서 변수명에 의해 인덱스를 얻는 방법을 다시 반복.
R Programming |
%%R
print(mydata[,3:6])
Results |
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- 단독 Number를 가진 numeric 벡터에 단독 인덱스 값을 저장.
R Programming |
%%R
myA <- which( names(mydata)=="q1" )
print(myA) #숫자 3 출력.
myZ <- which( names(mydata)=="q4" )
print(myZ) #숫자 6을 출력.
print(mydata[ ,myA:myZ ]) # 변수 3에서 6번째 변수를 출력.
Results |
[1] 3
[1] 6
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
3) 로직에 의해 변수 선택
- “==” 인식자는 벡터의 모든 멤버를 값과 비교하여서, TRUE/FALSE 값의 논리 벡터로 반환한다.
- 벡터는 변수를 선택하기 위해 이용된다.
- 벡터의 Length는 변수의 수와 일치하여서, 데이터 프레임 mydata에서 변수로써 저장될 수 없다.
- 단지 워크스페이스에 저장된다.
- 수동적으로 변수 q1을 가진 벡터를 생성.
- as.logical함수는 1&0의 논리값을 TRUE & FALSE값으로 변경.
R Programming |
%%R
myq <- as.logical( c(0,0,1,0,0,0) )
print(myq) # TRUE/FALSE 값 출력.
print( mydata[ myq ] ) #변수 q1출력.
Results |
[1] FALSE FALSE TRUE FALSE FALSE FALSE
q1
1 1
2 2
3 2
4 3
5 4
6 5
7 5
8 4
- 자동적으로 같은 논리 벡터를 생성.
R Programming |
%%R
myq <- names(mydata)=="q1"
print(myq)
print( mydata[ myq ] )
Results |
[1] FALSE FALSE TRUE FALSE FALSE FALSE
q1
1 1
2 2
3 2
4 3
5 4
6 5
7 5
8 4
- OR 인식자(“|”)를 이용하여서 q1에서 q4의 변수 선택,
- 결과를 myqs에 논리 벡터를 저장.
R Programming |
%%R
myqs <- names(mydata)=="q1" |
names(mydata)=="q2" |
names(mydata)=="q3" |
names(mydata)=="q4"
print(myqs)
print( mydata[myqs] )
Results |
[1] FALSE FALSE TRUE TRUE TRUE TRUE
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- %in% 연산자를 이용하여서 q1에서 q4의 변수 선택.
- 위의 OR 연산자를 이용하는 것보다 간단.
R Programming |
%%R
myqs <- names(mydata) %in% c("q1","q2","q3","q4")
print(myqs)
print( mydata[myqs] )
Results |
[1] FALSE FALSE TRUE TRUE TRUE TRUE
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- mydata를 접근하기 위해서 attach함수를 이용하면,
- 단독적으로 변수 q1을 조회할 수 있지만, 후에 data frame을 detach 해야 한다.
- 데이터를 읽기 위해서는 편하지만, 권장하지 않는 방법.
R Programming |
%%R
attach(mydata)
print(gender)
print(q1)
print( data.frame(q1,q2,q3,q4) )
Results |
[1] "f" "f" "f" "f" "m" "m" "m" "m"
[1] 1 2 2 3 4 5 5 4
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
4) 선택된 변수의 새 데이터 프레임 생성.
- 새로운 데이터 프레임에 위에서 선택된 변수를 저장. 아래 4개의 결과는 서로 같다.
R Programming |
%%R
myqs <- mydata[3:6]
myqs <- mydata[ c("q1","q2","q3","q4") ]
myqs <- data.frame(q1,q2,q3,q4)
myqs <- subset(mydata, select=q1:q4)
print(myqs)
Results |
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
5. R - Tidyverse
R Programming |
%%R
library(tidyverse)
library(skimr)
mydata <- read_csv("C:/work/data/mydata.csv",
col_types = cols( id = col_double(),
workshop = col_character(),
gender = col_character(),
q1 = col_double(),
q2 = col_double(),
q3 = col_double(),
q4 = col_double()
)
)
- 데이터 기초 분석
R Programming |
%%R
str(mydata)
Results |
tibble [8 x 7] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
$ id : num [1:8] 1 2 3 4 5 6 7 8
$ workshop: chr [1:8] "1" "2" "1" "2" ...
$ gender : chr [1:8] "f" "f" "f" "f" ...
$ q1 : num [1:8] 1 2 2 3 4 5 5 4
$ q2 : num [1:8] 1 1 2 1 5 4 3 5
$ q3 : num [1:8] 5 4 4 NA 2 5 4 5
$ q4 : num [1:8] 1 1 3 3 4 5 4 5
- attr(*, "spec")=
.. cols(
.. id = col_double(),
.. workshop = col_character(),
.. gender = col_character(),
.. q1 = col_double(),
.. q2 = col_double(),
.. q3 = col_double(),
.. q4 = col_double()
.. )
R Programming |
%%R
skim(mydata)
Results |
-- Data Summary ------------------------
Values
Name mydata
Number of rows 8
Number of columns 7
_______________________
Column type frequency:
character 2
numeric 5
________________________
Group variables None
– Variable type: character —————————————————-
A tibble: 2 x 8
skim_variable n_missing complete_rate min max empty n_unique whitespace
1 workshop 0 1 1 1 0 2 0
2 gender 0 1 1 1 0 2 0
– Variable type: numeric ——————————————————
A tibble: 5 x 11
skim_variable n_missing complete_rate mean sd p0 p25 p50 p75
1 id 0 1 4.5 2.45 1 2.75 4.5 6.25
2 q1 0 1 3.25 1.49 1 2 3.5 4.25
3 q2 0 1 2.75 1.75 1 1 2.5 4.25
4 q3 1 0.875 4.14 1.07 2 4 4 5
5 q4 0 1 3.25 1.58 1 2.5 3.5 4.25
p100 hist
1 8 <U+2587><U+2583><U+2587><U+2583><U+2587>
2 5 <U+2583><U+2587><U+2583><U+2587><U+2587>
3 5 <U+2587><U+2582><U+2582><U+2582><U+2585>
4 5 <U+2582><U+2581><U+2581><U+2587><U+2587>
5 5 <U+2587><U+2581><U+2587><U+2587><U+2587>
- 모든 변수 선택하기.
R Programming |
%%R
# 테이블에 포함된 모든 변수 선택하기.
mydata %>% select(everything())
Results |
# A tibble: 8 x 7
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 6 2 m 5 4 5 5
7 7 1 m 5 3 4 4
8 8 2 m 4 5 5 5
1) INDEX를 사용한 변수 선택
- 3번째 변수(q1) 선택.
R Programming |
%%R
mydata %>% select(4)
Results |
# A tibble: 8 x 1
q1
1 1
2 2
3 2
4 3
5 4
6 5
7 5
8 4
- 인덱스를 사용하여서 변수 q1, q2, q3, q4 선택하기 위한 방법.
R Programming |
%%R
mydata %>% select(4:7)
Results |
# A tibble: 8 x 4
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- 첫 번째, 두 번째 변수를 제외.
R Programming |
%%R
mydata %>% dplyr::select(-(1:3))
Results |
# A tibble: 8 x 4
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- '%in%' 함수는 이름의 전체 벡터를 비교하여 일치 여부를 반환한다.
R Programming |
%%R
mydata %>% dplyr::select(q1,q2,q3,q4)
Results |
# A tibble: 8 x 4
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
R Programming |
%%R
mydata %>% dplyr::select(q1:q4)
Results |
# A tibble: 8 x 4
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
2) 변수명에 의해 변수 선택하기
- q1변수 선택.
R Programming |
%%R
mydata %>% dplyr::select(q1)
Results |
# A tibble: 8 x 1
q1
1 1
2 2
3 2
4 3
5 4
6 5
7 5
8 4
- q 변수 선택
R Programming |
mydata %>% dplyr::select(num_range("q",1:4))
- 변수 명의 리스트를 저장하여 이용.
R Programming |
%%R
myQnames = c("q1","q2","q3","q4")
print(myQnames) #변수명 출력.
mydata %>% dplyr::select(myQnames)
Results |
[1] "q1" "q2" "q3" "q4"
Note: Using an external vector in selections is ambiguous.
i Use `all_of(myQnames)` instead of `myQnames` to silence this message.
i See .
This message is displayed once per session.
# A tibble: 8 x 4
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- 인덱스에 의해 연속적인 변수 선택을 다시 설명.
- 여기서 변수명에 의해 인덱스를 얻는 방법을 다시 반복.
R Programming |
%%R
mydata %>% select(4:7)
Results |
# A tibble: 8 x 4
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
3) 로직에 의해 변수 선택
- ==” 인식자는 벡터의 모든 멤버를 값과 비교하여서, TRUE/FALSE 값의 논리 벡터로 반환한다.
- 벡터는 변수를 선택하기 위해 이용된다.
- 벡터의 Length는 변수의 수와 일치하여서, 데이터 프레임 mydata에서 변수로써 저장될 수 없다.
- 단지 워크스페이스에 저장된다.
- 수동적으로 변수 q1을 가진 벡터를 생성.
- as.logical함수는 1&0의 논리 값을 TRUE & FALSE값으로 변경.
R Programming |
%%R
myq <- c(F,F,F,T,F,F,F)
myq1 <- which(myq == T)
myq1
Results |
[1] 4
- 인덱스를 사용하여서 변수 q1출력.
R Programming |
%%R
mydata %>%
as_tibble() %>%
select(myq1)
Results |
Note: Using an external vector in selections is ambiguous.
i Use `all_of(myq1)` instead of `myq1` to silence this message.
i See .
This message is displayed once per session.
# A tibble: 8 x 1
q1
1 1
2 2
3 2
4 3
5 4
6 5
7 5
8 4
- 수치형 변수 선택
R Programming |
%%R
mydata %>%
as_tibble() %>%
select(where(is.numeric))
Results |
# A tibble: 8 x 5
id q1 q2 q3 q4
1 1 1 1 5 1
2 2 2 1 4 1
3 3 2 2 4 3
4 4 3 1 NA 3
5 5 4 5 2 4
6 6 5 4 5 5
7 7 5 3 4 4
8 8 4 5 5 5
R Programming |
%%R
mydata %>%
as_tibble() %>%
dplyr::select_if(myq)
Results |
# A tibble: 8 x 1
q1
1 1
2 2
3 2
4 3
5 4
6 5
7 5
8 4
- 참고 : subset 사용
R Programming |
%%R
subset(mydata,select=myq)
Results |
# A tibble: 8 x 1
q1
1 1
2 2
3 2
4 3
5 4
6 5
7 5
8 4
- 자동적으로 같은 논리 벡터를 생성.
R Programming |
%%R
myq <- names(mydata)=="q1"
print(myq)
# 인덱스를 사용하여서 변수 q1출력.
mydata %>%
as_tibble() %>%
dplyr::select_if(myq)
Results |
[1] FALSE FALSE FALSE TRUE FALSE FALSE FALSE
# A tibble: 8 x 1
q1
1 1
2 2
3 2
4 3
5 4
6 5
7 5
8 4
- OR 인식자(“|”)를 이용하여서 q1에서 q4의 변수 선택,
- 결과를 myqs에 논리 벡터를 저장.
R Programming |
%%R
myqs <- names(mydata)=="q1" |
names(mydata)=="q2" |
names(mydata)=="q3" |
names(mydata)=="q4"
myqs
mydata %>%
as_tibble() %>%
dplyr::select_if(myqs)
Results |
# A tibble: 8 x 4
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- %in% 연산자를 이용하여서 q1에서 q4의 변수 선택.
- 위의 OR 연산자를 이용하는 것보다 간단.
R Programming |
%%R
myqs <- names(mydata) %in% c("q1","q2","q3","q4")
print(myqs)
mydata %>%
as_tibble() %>%
dplyr::select_if(myqs)
Results |
[1] FALSE FALSE FALSE TRUE TRUE TRUE TRUE
# A tibble: 8 x 4
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
- 변수 선택을 위한 다양한 방법. 아래 4개 프로그램은 동일한 결과를 출력한다.
R Programming |
%%R
mydata %>%
dplyr::select(num_range("q",1:4))
mydata %>%
select(4:7)
mydata %>%
select(q1,q2,q3,q4)
mydata %>%
select(contains("q"))
mydata %>%
select(starts_with("q"))
mydata %>%
select(num_range("q", 1:4))
mydata %>%
dplyr::select(matches("^q[[:digit:]]"))
Results |
# A tibble: 8 x 4
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 4 5 5 5
4) 선택된 변수의 새 데이터 프레임 생성.
R Programming |
%%R
mydata1 <- mydata %>%
select(num_range("q", 1:4))
mydata1
Results |
# A tibble: 8 x 4
q1 q2 q3 q4
1 1 1 5 1
2 2 1 4 1
3 2 2 4 3
4 3 1 NA 3
5 4 5 2 4
6 5 4 5 5
7 5 3 4 4
8 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)
- 모든 변수 선택하기.
Python Programming |
mydata
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
1) INDEX를 사용한 변수 선택
Python Programming |
mydata[:]
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
- 3번째 변수(q1) 선택.
Python Programming |
mydata.iloc[:,3:4]
Results |
q1
0 1
1 2
2 2
3 3
4 4
5 5
6 5
7 4
- 인덱스를 사용하여서 변수 q1, q2, q3, q4 선택하기 위한 방법.
Python Programming |
mydata.iloc[:, [3,4,5,6] ]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 인덱스를 사용하여서 변수 q1, q2, q3, q4 선택하기 위한 방법.
Python Programming |
mydata.iloc[:, [3,4,5,6] ]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
Python Programming |
mydata.iloc[:,3:7]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 첫 번째, 두 번째 변수를 제외.
Python Programming |
mydata.drop(mydata.columns[[0 ,1, 2]], axis = 1)
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 반복하여서 열의 범위를 이용한다면, Numeric 벡터에 전체 범위를 저장하면 유용.
Python Programming |
mydata.iloc[:,3:7]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- '%in%' 함수는 이름의 전체 벡터를 비교하여 일치 여부를 반환한다.
Python Programming |
mydata.loc[:, ['q1', 'q2', 'q3', 'q4']]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
Python Programming |
mydata.loc[ : , 'q1':'q4']
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
2) 변수명에 의해 변수 선택하기
- q1변수 선택.
Python Programming |
mydata["q1"]
Results |
0 1
1 2
2 2
3 3
4 4
5 5
6 5
7 4
Name: q1, dtype: int32
Python Programming |
mydata.loc[:,['q1']]
Results |
q1
0 1
1 2
2 2
3 3
4 4
5 5
6 5
7 4
Python Programming |
mydata.loc[:,'q1']
Results |
0 1
1 2
2 2
3 3
4 4
5 5
6 5
7 4
Name: q1, dtype: int32
- q 변수 선택
Python Programming |
mydata[["q1","q2","q3","q4" ]]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
Python Programming |
mydata.loc[:,["q1","q2","q3","q4" ]]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 변수 명의 리스트를 저장하여 이용.
Python Programming |
myQnames = ["q1","q2","q3","q4"]
print(myQnames) #변수명 출력.
mydata[myQnames]
Results |
['q1', 'q2', 'q3', 'q4']
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 이 프로그램 역시 변수 명의 리스트를 저장하는 방법이나,
- 형태 1:4로부터 자동으로 생성된 연속적인 1,2,3,4를 문자 q에 붙여서 변수명을 생성한다.
Python Programming |
myQnames = ["q" + str(i) for i in range(1,5)]
print(myQnames) # 변수명 출력
mydata[myQnames] # 선택된 변수 출력
Results |
['q1', 'q2', 'q3', 'q4']
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 인덱스에 의해 연속적인 변수 선택을 다시 설명.
- 여기서 변수명에 의해 인덱스를 얻는 방법을 다시 반복.
Python Programming |
mydata.iloc[:,3:7]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 단독 Number를 가진 numeric 벡터에 단독 인덱스 값을 저장.
Python Programming |
mylist = list(mydata.columns)
myA = mylist.index("q1")
print(myA)
myZ = mylist.index("q4")
print(myZ)
mydata.iloc[:,myA:myZ + 1] # 변수 3에서 6번째 변수를 출력.
Results |
3
6
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 변수의 인덱스를 검색한 후 해당 변수의 위치를 지정하여서 선택
Python Programming |
mylist = mydata.columns
myA = [index for index, item in enumerate(mylist) if item == "q1"]
print(myA)
# 단독 Number를 가진 numeric 벡터에 단독 인덱스 값을 저장.
myZ = [index for index, item in enumerate(mylist) if item == "q4"]
print(myZ)
mydata.iloc[:,myA[0]:myZ[0] + 1] # 변수 3에서 6번째 변수를 출력.
Results |
[3]
[6]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
3) 로직에 의해 변수 선택
- “==” 인식자는 벡터의 모든 멤버를 값과 비교하여서, TRUE/FALSE 값의 논리 벡터로 반환한다.
- 벡터는 변수를 선택하기 위해 이용된다.
- 벡터의 Length는 변수의 수와 일치하여서, 데이터 프레임 mydata에서 변수로써 저장될 수 없다.
- 단지 워크스페이스에 저장된다.
- 수동적으로 변수 q1을 가진 벡터를 생성.
- as.logical함수는 1&0의 논리값을 TRUE & FALSE값으로 변경.
Python Programming |
myq = [False,False,False,True,False,False,False]
#변수 q1출력.
mydata.loc[:, myq ]
Results |
q1
0 1
1 2
2 2
3 3
4 4
5 5
6 5
7 4
- 자동적으로 같은 논리 벡터를 생성.
Python Programming |
myq = (mydata.columns=="q1")
print(myq)
mydata.loc[:,myq]
Results |
[False False False True False False False]
Results |
q1
0 1
1 2
2 2
3 3
4 4
5 5
6 5
7 4
- OR 인식자(“|”)를 이용하여서 q1에서 q4의 변수 선택,
- 결과를 myqs에 논리 벡터를 저장.
Python Programming |
myqs_1 = (mydata.columns == "q1") | (mydata.columns == "q2") | (mydata.columns == "q3") | (mydata.columns == "q4")
print(myqs_1)
mydata.loc[:,myqs_1]
Results |
[False False False True True True True]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- isin 연산자를 이용하여서 q1에서 q4의 변수 선택.
- 위의 OR 연산자를 이용하는 것보다 간단.
Python Programming |
myqs = mydata.columns.isin (["q1","q2","q3","q4"])
print(myqs)
mydata.loc[:,myqs]
Results |
[False False False True True True True]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 새로운 데이터 프레임에 위에서 선택된 변수를 저장. 아래 4개의 결과는 서로 같다.
4) 선택된 변수로 구성된 새로운 데이터 프레임 생성.
Python Programming |
myqs = mydata.iloc[:,3:7]
print(myqs)
myqs = mydata.loc[:,["q1","q2","q3","q4" ]]
print(myqs)
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 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)
- 모든 변수 선택하기.
Python Programming |
mydata
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 |
mydata >> select(everything())
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
1) INDEX를 사용한 변수 선택
- 모든 변수를 선택하여 출력.
Python Programming |
mydata >> select(everything())
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
- 3번째 변수(q1) 선택.
Python Programming |
mydata >> select(3)
Results |
q1
0 1
1 2
2 2
3 3
4 4
5 5
6 5
7 4
- 인덱스를 사용하여서 변수 q1, q2, q3, q4 선택하기 위한 방법.
Python Programming |
mydata >> select(columns_between(3, 7, inclusive=True))
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 첫 번째, 두 번째 변수를 제외.
Python Programming |
mydata >> select(~columns_between(0, 2, inclusive=True))
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- '%in%' 함수는 이름의 전체 벡터를 비교하여 일치 여부를 반환한다.
Python Programming |
mydata >> select('q1','q2','q3','q4')
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
Python Programming |
mydata >> select(range(3,7))
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
Python Programming |
mydata >> select(columns_between(3, 7, inclusive=True))
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
2) 변수명에 의해 변수 선택하기
- q1변수 선택.
Python Programming |
mydata >> select("q1")
Results |
q1
0 1
1 2
2 2
3 3
4 4
5 5
6 5
7 4
- q 변수 선택
Python Programming |
mydata >> select(num_range("q", range(1,5)))
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 변수명의 리스트를 저장하여 이용.
Python Programming |
myQnames = ["q1","q2","q3","q4"]
print(myQnames) #변수명 출력.
mydata >> select(myQnames)
Results |
['q1', 'q2', 'q3', 'q4']
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 인덱스에 의해 연속적인 변수 선택을 다시 설명.
- 여기서 변수명에 의해 인덱스를 얻는 방법을 다시 반복.
Python Programming |
mydata >> select(columns_between(3, 7, inclusive=True))
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
3) 로직에 의해 변수 선택
- “==” 인식자는 벡터의 모든 멤버를 값과 비교하여서, TRUE/FALSE 값의 논리 벡터로 반환한다.
- 벡터는 변수를 선택하기 위해 이용된다.
- 벡터의 Length는 변수의 수와 일치하여서, 데이터 프레임 mydata에서 변수로써 저장될 수 없다.
- 단지 워크스페이스에 저장된다.
- [참고] which 함수(위치검색 함수)
Python Programming |
[index for index, item in enumerate([True,False,True,True,True,False]) if item == True]
Results |
[0, 2, 3, 4]
- 수동적으로 변수 q1을 가진 벡터를 생성.
- as.logical함수는 1&0의 논리값을 TRUE & FALSE값으로 변경.
Python Programming |
myq = [False,False,False,True,False,False,False]
myq1 = [index for index, item in enumerate(myq) if item == True]
myq1
Results |
[3]
- 인덱스를 사용하여서 변수 q1출력.
Python Programming |
mydata >> select(myq1)
Results |
q1
0 1
1 2
2 2
3 3
4 4
5 5
6 5
7 4
- [참고] 수치형 변수명 리스트 생성
Python Programming |
print(mydata._get_numeric_data().columns.tolist())
print(mydata.select_dtypes(include=np.number).columns.tolist())
mydata.select_dtypes(exclude='object').columns.tolist()
Results |
['q1', 'q2', 'q3', 'q4']
- 수치형 변수 선택
Python Programming |
mydata >> select(mydata.select_dtypes(include=np.number).columns.tolist())
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- select_if 사용.
Python Programming |
def num_variable(df,serieses):
result = []
for series in serieses:
if df[series].dtypes in (["int32","float64"]):
result.append(series)
return result
mydata >> select(num_variable(mydata,mydata.columns.tolist()))
Results |
['q1', 'q2', 'q3', 'q4']
- 자동적으로 같은 논리 벡터를 생성.
Python Programming |
myq = (mydata.columns == "q1")
print(myq)
Results |
[False False False True False False False]
- OR 인식자(“|”)를 이용하여서 q1에서 q4의 변수 선택,
- 결과를 myqs에 논리 벡터를 저장.
Python Programming |
myqs_1 = (mydata.columns == "q1") | (mydata.columns == "q2") | (mydata.columns == "q3") | (mydata.columns == "q4")
print(myqs_1)
myq1 = [index for index, item in enumerate(myqs_1) if item == True]
print(myq1)
mydata >> select(myq1)
Results |
[False False False True True True True]
[3, 4, 5, 6]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- %in% 연산자를 이용하여서 q1에서 q4의 변수 선택.
- 위의 OR 연산자를 이용하는 것보다 간단.
- isin 연산자를 이용하여서 q1에서 q4의 변수 선택.
- 위의 OR 연산자를 이용하는 것보다 간단.
Python Programming |
myqs_2 = mydata.columns.isin (["q1","q2","q3","q4"])
print(myqs_2)
myqs_3 = [index for index, item in enumerate(myqs_2) if item == True]
print(myqs_3)
mydata >> select(myqs_3)
Results |
[False False False True True True True]
[3, 4, 5, 6]
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
- 변수 선택을 위한 다양한 방법. 아래 4개 프로그램은 동일한 결과를 출력한다.
Python Programming |
mydata >> select(num_range("q", range(1,5)))
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
Python Programming |
mydata >> select(columns_between(3, 7, inclusive=True))
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
Python Programming |
mydata >> select('q1','q2','q3','q4')
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
Python Programming |
mydata >> select(contains("q"))
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
Python Programming |
mydata >> select(starts_with("q"))
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
Python Programming |
mydata >> select(matches("^q[\d]"))
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 4 5 5.0 5
4) 선택된 변수의 새 데이터 프레임 생성.
Python Programming |
mydata1 = mydata >> select(num_range("q", range(1,5)))
mydata1
Results |
q1 q2 q3 q4
0 1 1 5.0 1
1 2 1 4.0 1
2 2 2 4.0 3
3 3 1 NaN 3
4 4 5 2.0 4
5 5 4 5.0 5
6 5 3 4.0 4
7 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 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 |
반응형
'통계프로그램 비교 시리즈 > 데이터 전처리 비교' 카테고리의 다른 글
통계프로그램 비교 시리즈 – [변수와 관측치 선택] 3. 변수와 관측치를 동시에 선택 (0) | 2022.01.07 |
---|---|
통계프로그램 비교 시리즈 – [변수와 관측치 선택] 2. 관측치 선택( WHERE, IF, SELECT IF ) (0) | 2022.01.07 |
통계프로그램 비교 시리즈 – 9. EXPORTING DATA TO SAS & SPSS DATA SETS (0) | 2022.01.06 |
통계프로그램 비교 시리즈 – 8. IMPORTING DATA FROM SPSS (0) | 2022.01.06 |
통계프로그램 비교 시리즈 – 7. IMPORTING DATA FROM SAS (0) | 2022.01.06 |
댓글