Skip Headers

SAS  SPSS  R-PROJECT  S-PLUS  PROC-SQL

통 계
프 로 그 램 비 교

Go to Documentation Home
HOME
Go to Book List
PRO_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
R-PROJECT
Go to Feedback page
MAIL

Go to previous page
Previous
Go to next page
Next

2. 관측치 선택( WHERE, IF, SELECT IF )


 


1. SAS
2. SPSS
3. R-PROJECT
4. S-PLUS
5. PROC SQL

1. SAS

MAIN

* 관측치 선택을 위한 SAS 프로그램.

* Where 구문을 이용한 관측치 선택;

PROC PRINT data=BACK.mydata;

      WHERE gender='m';

RUN;

OBS    id    workshop    gender    q1    q2    q3    q4

 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

 

PROC PRINT data=BACK.mydata;

      WHERE gender="m" & q4=5;

RUN;

OBS    id    workshop    gender    q1    q2    q3    q4

 6      6        2         m        5     4     5     5

 8      8        2         m        4     5     5     5

 

* Where 구문을 이용한 데이터 생성;

DATA BACK.males;

 SET BACK.mydata;

     WHERE gender="m";

RUN;

PROC PRINT;RUN;

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

 

DATA BACK.females;

 SET BACK.mydata;

     WHERE gender="f";

RUN;

PROC PRINT;RUN;

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

 


맨 위로 이동 맨 위로 이동


2. SPSS

MAIN

* 관측치 선택을 위한 SPSS 프로그램.

TEMPORARY.

SELECT IF(gender = "m").

LIST.

EXECUTE.

 

TEMPORARY.

SELECT IF(gender = "m" & q2 >= 5).

LIST.

EXECUTE.

 

TEMPORARY.

SELECT IF(gender = "m").

SAVE OUTFILE='C:\males.sav'.

EXECUTE .

 

TEMPORARY.

SELECT IF(gender = "f").

SAVE OUTFILE='C:\females.sav'.

EXECUTE .

맨 위로 이동 맨 위로 이동


3. R-PROJECT

MAIN

* 관측치 선택을 위한 R-PROJECT 프로그램.

load(file="c:\\data/mydata.Rdata")

attach(mydata)

print(mydata)

   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

 

#---인덱스에 의해 관측치 선택

# 모든 행(관측치)을 출력.

print( mydata[1:8, ] )

  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해에서 8행의 남성 관측치 선택:

print( mydata[5:8, ] )

   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

 

# 음수는 행을 제외시 이용된다.

# Isolate 함수는 minus를 적용하기 위해 이용된다. 1행부터 4행을 제외.

# -1:4는 -1에서 4의 행을 지정(-1,0,1,2,3,4)

print( mydata[-I(1:4), ] )

   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

 

# Which 함수는 True 조건의 인덱스 Number를 발견할수 있다. 남성인 관측치의 인덱스 선택.

which(gender=="m")

[1] 5 6 7 8

 

# 인덱스 Number를 이용하여 관측치 선택. 5행에서 8행까지 선택.

print( mydata[which(gender=="m"), ] )

  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

 

# 복잡한 로직을 적용하여 관측치를 선택할수 있다.

# 성별이 남성이면서 변수 q4의 관측치가 5인 관측치 선택.

print( mydata[ which(gender=="m" & q4==5), ] )

   workshop gender q1 q2 q3 q4

6        2      m  5  4  5  5

8        2      m  4  5  5  5

 

# 원 데이터 프레임에서 외부로 저장할 인덱스를 수치 벡터로 저장할수 있다.

# 성별이 남자이면서 q4의 값이 5인 행을 선택.

happyGuys <- which(gender=="m" & q4==5)

print(happyGuys)

[1] 6 8

 

# 관측치를 선택하기 위해 happyGuys벡터를 이용.

# 비록 happyGuys가 변수명이지만, 따옴표를 이용하지 않는다.

print( mydata[happyGuys, ] )

   workshop gender q1 q2 q3 q4

6        2      m  5  4  5  5

8        2      m  4  5  5  5

 

#---논리 벡터에 의해 관측치 선택

# 논리적인 비교는 원 데이터 프레임과 동등한 Length를 가진 논리 벡터를 생성한다.

# 8개 변수에 대한 논리 벡터를 생성. 성별이 남성인 논리벡터 생성.

print(mydata$gender=="m")

[1] FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE

 

# 행 위치에 논리 벡터를 넣어서 남성에 대한 관측치를 선택한다.

print( mydata[mydata$gender=="m", ] )

   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

 

# mydata를 attach하면, 남성을 선택하기 위해 gender의 접두사로 mydata$를 사용하지 않아도 된다.

attach(mydata)

print( mydata[gender=="m", ] )

   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

 

# 복잡한 로직을 적용할수 있다.

# attach 함수의 사용을 통하여 which함수 도움없이 바로 조건추출.

# 남성이면서 변수 q4가 5인 관측치 선택.

print( mydata[ gender=="m" & q4==5, ] )

  workshop gender q1 q2 q3 q4

6        2      m  5  4  5  5

8        2      m  4  5  5  5

 

# 로직이 복잡할 때, 데이터세트에 로직 벡터를 저장하기를 원할것이다.

# 조건에 대한 변수를 생성(TRUE / FALSE).

mydata$happyGuys <- (gender=="m" & q4==5)

print(mydata)  # mydata에 추가변수(happyGuys)를 확인.

  workshop gender q1 q2 q3 q4 happyGuys

1        1      f  1  1  5  1     FALSE

2        2      f  2  1  4  1     FALSE

3        1      f  2  2  4  3     FALSE

4        2      f  3  1 NA  3     FALSE

5        1      m  4  5  2  4     FALSE

6        2      m  5  4  5  5      TRUE

7        1      m  5  3  4  4     FALSE

8        2      m  4  5  5  5      TRUE

 

# 관측치 선택을 위해서 저장된 논리 벡터를 이용할수 있다.

# 관측치 선택을 위해 저장된 논리 벡터를 이용할 때, 인용부호에 넣지 않는다.

# 파일이 attach될때에 happyGuys가 존재 하지 않았기 때문에, 완전한 형태의 mydata$happyGusy를 이용해야한다.

print( mydata[mydata$happyGuys, ] )

   workshop gender q1 q2 q3 q4 happyGuys

6        2      m  5  4  5  5      TRUE

8        2      m  4  5  5  5      TRUE

 

#--- 행 이름에 의해 관측치 선택

# 행 이름을 출력한다.

# 값들이 인용부호에 있기 때문에, 문자 벡터를 생성한다.

row.names(mydata)

[1] "1" "2" "3" "4" "5" "6" "7" "8"

 

# 행 이름을 사용하여서 행을 선택할수 있다.

# 행 이름에 의해 처음 4개의 관측치를 선택한다.

print( mydata[ c("1","2","3","4"), ] )

   workshop gender q1 q2 q3 q4 happyGuys

1        1      f  1  1  5  1     FALSE

2        2      f  2  1  4  1     FALSE

3        1      f  2  2  4  3     FALSE

4        2      f  3  1 NA  3     FALSE

 

# 행 이름으로써 Number를 가지는 것은 좀 불분명하다.

# 좀 더 확실한 행 이름을 지정한다.

mynames <- c("Ann","Cary","Sue","Carla",

             "Bob","Scott","Mike","Rich")

print(mynames)

[1] "Ann"   "Cary"  "Sue"   "Carla" "Bob"   "Scott" "Mike"  "Rich"

 

# mydata에서 row.names함수를 이용하여 새로운 행 이름을 저장.

row.names(mydata) <- mynames

print(mydata)

workshop gender  q1 q2 q3 q4 happyGuys

Ann          1      f  1  1  5  1     FALSE

Cary         2      f  2  1  4  1     FALSE

Sue          1      f  2  2  4  3     FALSE

Carla        2      f  3  1 NA  3     FALSE

Bob          1      m  4  5  2  4     FALSE

Scott        2      m  5  4  5  5      TRUE

Mike         1      m  5  3  4  4     FALSE

Rich         2      m  4  5  5  5      TRUE

 

# 행 이름으로 관측치를 선택. 이 방법이 더 확실하다.

print( mydata[ c("Ann","Cary","Sue","Carla"), ] )

    workshop gender q1 q2 q3 q4 happyGuys

Ann          1      f  1  1  5  1     FALSE

Cary         2      f  2  1  4  1     FALSE

Sue          1      f  2  2  4  3     FALSE

Carla        2      f  3  1 NA  3     FALSE

 

# 만약 자주 이용하는 행 이름의 세트를 가졌다면, 그것을 문자 벡터로 저장하여 이용가능.

myGals <- c("Ann","Cary","Sue","Carla")

print(myGals)

[1] "Ann"   "Cary"  "Sue"   "Carla"

 

# 행을 선택시에 myGals를 이용한다. 이 방법에 사용시 인용부호에 넣을 필요 없다.

print( mydata[ myGals, ] )

    workshop gender q1 q2 q3 q4 happyGuys

Ann          1      f  1  1  5  1     FALSE

Cary         2      f  2  1  4  1     FALSE

Sue          1      f  2  2  4  3     FALSE

Carla        2      f  3  1 NA  3     FALSE

 

# 그룹이 많은 값을 가졌다고 가정하면, 그 값의 리스트에 의해 단지 몇 개의 선택하기 원할 때 사용.

myGals <- row.names(mydata)=="Ann"  |

          row.names(mydata)=="Cary" |

          row.names(mydata)=="Sue"  |

          row.names(mydata)=="Carla"

print(myGals)

[1]  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE

 

# %in% 함수는 Or함수보다 더 간단하다.

print( row.names(mydata) %in% c("Ann","Cary","Sue","Carla") )

[1]  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE

 

# 인덱스 값을 취하기 위해서 “which” 함수를 이용할수 있다.

# 행이름이 Bob과 Rich의 인덱스 값을 찾는다.

firstMale <- which( row.names(mydata)=="Bob" )

print(firstMale)

lastMale <- which( row.names(mydata)=="Rich" )

print(lastMale)

[1] 5

[1] 8

 

# 행과 열을 동시에 선택하는 방법.

# 5번에서 8번째 행과 변수명이 q1과 q4의 열인 값을 선택.

mydata[firstMale:lastMale, c("q1","q2","q3","q4")]

q1 q2 q3 q4

Bob    4  5  2  4

Scott  5  4  5  5

Mike   5  3  4  4

Rich   4  5  5  5

 

#---선택된 관측치로 새로운 데이터 프래임 선택.

# 선택된 관측치를 새로운 데이터 프레임으로 저장.

 

# 남성을 선택하여 데이터 프레임 생성.

myMales <- mydata[mydata$gender=="m", ]

print(myMales)

# 여성을 선택하여 데이터 프레임 생성.

myFemales <-mydata[mydata$gender=="f", ]

print(myFemales)

   workshop gender q1 q2 q3 q4 happyGuys

Bob          1      m  4  5  2  4     FALSE

Scott        2      m  5  4  5  5      TRUE

Mike         1      m  5  3  4  4     FALSE

Rich         2      m  4  5  5  5      TRUE

---------------------------------------------------------------------------------

    workshop gender q1 q2 q3 q4 happyGuys

Ann          1      f  1  1  5  1     FALSE

Cary         2      f  2  1  4  1     FALSE

Sue          1      f  2  2  4  3     FALSE

Carla        2      f  3  1 NA  3     FALSE

 

맨 위로 이동 맨 위로 이동


4. S-PLUS

 

# 전체 관측치를 선택.

print( mydata[1:8, ] )

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행에서 8행의 관측치 즉, 남성의 관측치 선택

print( mydata[5:8, ] )

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

 

# 음수는 행을 제외한다.

# 1행부터 4행을 제외

# Isolate 함수는 minus를 적용하기 위해 이용된다.

print( mydata[-I(1:4), ] )

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

 

# Which 함수는 True 조건의 인덱스 Number를 발견할수 있다.

which(mydata$gender=="m")

[1] 5 6 7 8

 

# 인덱스 Number를 이용하여 관측치 선택.

print( mydata[which(mydata$gender=="m"), ] )

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

 

# 매우 복잡한 로직을 적용하여 관측치를 선택할수 있다.

print( mydata[ which(mydata$gender=="m" & mydata$q4==5), ] )

workshop gender q1 q2 q3 q4

6        2      m  5  4  5  5

8        2      m  4  5  5  5

 

# 원 데이터 프레임에서 외부로 저장할 인덱스를 수치 벡터로 저장할수 있다.

# 성별이 남자이면서 q4의 값이 5인 행을 선택.

happyGuys <- which(mydata$gender=="m" & mydata$q4==5)

print(happyGuys)

[1] 6 8

 

# 관측치를 선택하기 위해 happyGuys벡터를 이용할수 있다.

# 비록 happyGuys가 변수명이지만,  따옴표를 이용하지 않는다.

print( mydata[happyGuys, ] )

workshop gender q1 q2 q3 q4

6        2      m  5  4  5  5

8        2      m  4  5  5  5

 

# index.rowcol함수를 이용하여서 남성에 대한 행의 인덱스 선택.

index.rowcol(mydata, mydata$gender =="m", which="rows")

print( mydata[index.rowcol(mydata, mydata$gender =="m", which="rows"), ] )

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

 

print( mydata[index.rowcol(mydata, mydata$gender =="m" & mydata$q4==5, which="rows"), ] )

workshop gender q1 q2 q3 q4

6        2      m  5  4  5  5

8        2      m  4  5  5  5

 

mydata[index.rowcol(mydata, mydata$gender =="m" & mydata$q4==5 , which="rows"),]

workshop gender q1 q2 q3 q4

6        2      m  5  4  5  5

8        2      m  4  5  5  5

 

# 조건에 해당하는 행의 인덱스 선택.

happyGuys<-index.rowcol(mydata, mydata$gender =="m" & mydata$q4==5 , which="rows")

print( mydata[happyGuys, ] )

workshop gender q1 q2 q3 q4

6        2      m  5  4  5  5

8        2      m  4  5  5  5

 

#---논리 벡터에 의해 관측치 선택

# 논리적인 비교는 원 데이터 프레임과 동등한 Length를 가진 논리 벡터를 생성한다.

# 8개 변수에 대한 논리 벡터를 생성.

print(mydata$gender=="m")

[1] F F F F T T T T

 

# 행 위치에 논리 벡터를 넣어서 남성에 대한 관측치를 선택한다.

print( mydata[mydata$gender=="m", ] )

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

 

# mydata를 attach후에는 접두사(mydata$ )를 지정하지 않고, 변수 지정가능.

attach(mydata)

print( mydata[gender=="m", ] )

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

 

print( mydata[ gender=="m" & q4==5, ] )

  workshop gender q1 q2 q3 q4

6        2      m  5  4  5  5

8        2      m  4  5  5  5

 

# 로직이 복잡할 때, 데이터세트에 로직 벡터를 저장하기를 원할것이다.

# 조건에 대한 변수를 생성(TRUE / FALSE).

mydata$happyGuys <- (gender=="m" & q4==5)

print(mydata) # mydata에 추가변수(happyGuys)를 확인.

workshop gender q1 q2 q3 q4 happyGuys

1        1      f  1  1  5  1         F

2        2      f  2  1  4  1         F

3        1      f  2  2  4  3         F

4        2      f  3  1 NA  3         F

5        1      m  4  5  2  4         F

6        2      m  5  4  5  5         T

7        1      m  5  3  4  4         F

8        2      m  4  5  5  5         T

 

# 관측치 선택을 위해서 저장된 논리 벡터를 이용할수 있다.

# 관측치 선택을 위해 저장된 논리 벡터를 이용할 때, 인용부호에 넣지 않는다.

# 파일이 attach될때에 happyGuys가 존재 하지 않았기 때문에, 완전한 형태의 mydata$happyGusy를 이용해야한다.

print( mydata[mydata$happyGuys, ] )

workshop gender q1 q2 q3 q4 happyGuys

6        2      m  5  4  5  5         T

8        2      m  4  5  5  5         T

 

#--- 행 이름에 의해 관측치 선택

# 행 이름을 출력한다

# 값들이 인용부호에 있기 때문에, 문자 벡터를 생성한다.

row.names(mydata)

[1] "1" "2" "3" "4" "5" "6" "7" "8"

 

# 행 이름을 사용하여서 행을 선택할수 있다.

# 행 이름에 의해 처음 4개의 관측치를 선택한다.

print( mydata[ c("1","2","3","4"), ] )

workshop gender q1 q2 q3 q4 happyGuys

1        1      f  1  1  5  1         F

2        2      f  2  1  4  1         F

3        1      f  2  2  4  3         F

4        2      f  3  1 NA  3         F

 

# 행 이름으로써 Number를 가지는 것은 좀 불분명하다.

# 더 유용한 행 이름을 지정한다.

mynames <- c("Ann","Cary","Sue","Carla",

             "Bob","Scott","Mike","Rich")

print(mynames)

[1] "Ann"   "Cary"  "Sue"   "Carla" "Bob"   "Scott" "Mike"  "Rich"

 

# mydata에서 새로운 행 이름을 저장.

row.names(mydata) <- mynames

print(mydata)

workshop gender q1 q2 q3 q4 happyGuys

  Ann        1      f  1  1  5  1         F

 Cary        2      f  2  1  4  1         F

  Sue        1      f  2  2  4  3         F

Carla        2      f  3  1 NA  3         F

  Bob        1      m  4  5  2  4         F

Scott        2      m  5  4  5  5         T

 Mike        1      m  5  3  4  4         F

 

# 행 이름으로 관측치를 선택. 이 방법이 더 확실하다.

print( mydata[ c("Ann","Cary","Sue","Carla"), ] )

workshop gender q1 q2 q3 q4 happyGuys

  Ann        1      f  1  1  5  1         F

 Cary        2      f  2  1  4  1         F

  Sue        1      f  2  2  4  3         F

Carla        2      f  3  1 NA  3         F

 

# 만약 자주 이용하는 행 이름의 세트를 가졌다면, 그것을 문자 벡터로 저장할수 있다.

myGals <- c("Ann","Cary","Sue","Carla")

print(myGals)

[1] "Ann"   "Cary"  "Sue"   "Carla"

 

# 행을 선택시에 myGals를 이용한다. 이 방법에 사용시 인용부호에 넣을 필요 없다.

print( mydata[ myGals, ] )

workshop gender q1 q2 q3 q4 happyGuys

  Ann        1      f  1  1  5  1         F

 Cary        2      f  2  1  4  1         F

  Sue        1      f  2  2  4  3         F

Carla        2      f  3  1 NA  3         F

 

# 그룹이 많은 값을 가졌다고 가정하면, 그 값의 리스트에 의해 단지 몇 개의 선택하기 원할 때 사용.

myGals <- row.names(mydata)=="Ann"  |

          row.names(mydata)=="Cary" |

          row.names(mydata)=="Sue"  |

          row.names(mydata)=="Carla"

print(myGals)

[1] T T T T F F F F

 

# %in% 함수는 더 간단하다.

print( row.names(mydata) %in% c("Ann","Cary","Sue","Carla") )

[1] T T T T F F F F

 

# 인덱스 값을 취하기 위해서 “which” 함수를 이용할수 있다.

firstMale <- which( row.names(mydata)=="Bob" )

print(firstMale)

[1] 5

 

lastMale <- which( row.names(mydata)=="Rich" )

print(lastMale)

[1] 8

 

# 행과 열을 동시에 선택하는 방법.

# 5번에서 8번째 행과 q1과 q4의 열을 선택.

mydata[firstMale:lastMale, c("q1","q2","q3","q4")]

q1 q2 q3 q4

  Bob  4  5  2  4

Scott  5  4  5  5

 Mike  5  3  4  4

 Rich  4  5  5  5

 

#---선택된 관측치로 새로운 데이터 프래임 선택.

# 선택된 관측치를 새로운 데이터 프레임으로 저장.

myMales <- mydata[mydata$gender=="m", ]

print(myMales)

workshop gender q1 q2 q3 q4 happyGuys

  Bob        1      m  4  5  2  4         F

Scott        2      m  5  4  5  5         T

 Mike        1      m  5  3  4  4         F

 Rich        2      m  4  5  5  5         T

 

myFemales <-mydata[mydata$gender=="f", ]

print(myFemales)

workshop gender q1 q2 q3 q4 happyGuys

  Ann        1      f  1  1  5  1         F

 Cary        2      f  2  1  4  1         F

  Sue        1      f  2  2  4  3         F

Carla        2      f  3  1 NA  3         F

 

 

맨 위로 이동 맨 위로 이동


5. PROC SQL

MAIN

 

* where 문을 이용하여 해당 관측치 선택;

proc sql;

  create table mydata2_1 as

    select *

    from   BACK.mydata

    where  gender = 'm';

    select * from mydata2_1;

quit;

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

 

proc sql;

  create table mydata2_2 as

    select *

    from   BACK.mydata

    where  gender = 'm' and q4=5;

    select * from mydata2_2;

quit;

id  workshop  gender          q1        q2        q3        q4

--------------------------------------------------------------

 6         2  m                5         4         5         5

 8         2  m                4         5         5         5

 


맨 위로 이동 맨 위로 이동