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

5. 변수명 변경.


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

 


1. SAS

* 변수명 변경을 위한 SAS프로그램.

* Rename 함수를 사용하여 변수명 변경;

DATA mydata;

 set BACK.mydata;

     RENAME q1=x1  q2=x2  q3=x3  q4=x4;

RUN;

 

* Rename 함수를 사용하여 동시에 변수명 변경;

DATA mydata;

 set BACK.mydata;

     RENAME q1-q4=x1-x4;

RUN;

 

* 출력 데이터에서 데이터명 변경;

DATA mydata(rename=(q1-q4=x1-x4));

 set BACK.mydata;

RUN;

 

* 입력 데이터에서 데이터명 변경;

DATA mydata;

 set BACK.mydata(rename=(q1-q4=x1-x4));

RUN;

proc print;run;

id    workshop    gender    x1    x2    x3    x4

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

 

GET FILE='C:\mydata.sav'.

RENAME VARIABLES (Q1=X1)(Q2=X2)(Q3=X3)(Q4=X4).

EXECUTE.

 


3. R-PROJECT

 

# R Program for Renaming Variables.

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

print(mydata)

 

#---데이터 에디터 화면을 이용한 변수명 변경.

# 스프레트 쉬트에서 변수명을 클릭후 변경후에 쉬트를 닫는다.

fix(mydata)

print(mydata)

 

# 위에서 수정한 변수명을 다음 예제를 위하여 변수명 복구.

names(mydata)<-c("group", "gender", "q1", "q2", "q3", "q4")

 

#---Rename함수 사용.

# 이 방법은 이해하기 쉬우나, 실제 구현 방법을 이해하는데 돕지 않는다.

# rename함수를 적용하기 위하여 Reshape 라이브러리를 다운로드.

install.packages("reshape")

library(reshape)

mydata <- rename(mydata, c(q1="x1")) #Note the new name is one in quotes.

mydata <- rename(mydata, c(q2="x2"))

mydata <- rename(mydata, c(q3="x3"))

mydata <- rename(mydata, c(q4="x4"))

print(mydata)

  group gender x1 x2 x3 x4

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

 

# 다음 예제를 위해 변수명 복구.

names(mydata)<-c("group", "gender", "q1", "q2", "q3", "q4")

 

#---패키지 이용없이 변경하는 간단한 방법.

# names함수를 사용하여서 변수명 순서대로 변수명을 나열하는 방법.

names(mydata) <- c("group", "gender", "x1", "x2", "x3", "x4")

print(mydata)

  group gender x1 x2 x3 x4

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

 

# 다음 예제를 위해 변수명 복구.

names(mydata)<-c("group", "gender", "q1", "q2", "q3", "q4")

 

#---edit함수는 변수명 리스트를 변경할수 있다.

# 변수명을 편집후 저장 가능.

names(mydata) <- edit( names(mydata) )

print(mydata)

 

# 다음 예제를 위해 변수명 복구.

names(mydata)<-c("workshop", "gender", "q1", "q2", "q3", "q4")

#--행 인덱스 번호를 이용하는 방법.

# 먼저 names함수를 이용하여 변수명을 추출.

mynames<-names(mydata)

print(mynames)

[1] "workshop" "gender"   "q1"       "q2"       "q3"       "q4"

 

# 변수명을 출력.

print(data.frame(mynames))

mynames

1 workshop

2   gender

3       q1

4       q2

5       q3

6       q4

 

mynames[3]<-"T1"

mynames[4]<-"T2"

mynames[5]<-"T3"

mynames[6]<-"T4"

names(mydata) <-mynames # 열 이름에 새로운 변수명을 넣는다.

print(mydata)

  workshop gender T1 T2 T3 T4

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

 

# 각 변수의 순서. 즉 V1은 column [2]

mynames<-names(mydata) # 작업을 위해 복사본 생성.

print(mynames)

[1] "group"  "gender" "q1"     "q2"     "q3"     "q4"

 

mynames[ mynames=="q1" ] <-"x1"

mynames[ mynames=="q2" ] <-"x2"

mynames[ mynames=="q3" ] <-"x3"

mynames[ mynames=="q4" ] <-"x4"

print(mynames)

[1] "group"  "gender" "x1"     "x2"     "x3"     "x4"

 

# 새 변수명을 적용.

names(mydata) <- mynames

print(mydata)

  group gender x1 x2 x3 x4

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

 

# 다음 예제를 위해 변수명 복구.

names(mydata)<-c("group", "gender", "q1", "q2", "q3", "q4")

 

# 각 변수명을 직접 변경.

names(mydata)[names(mydata)=="q1"] <-"x1"

names(mydata)[names(mydata)=="q2"] <-"x2"

names(mydata)[names(mydata)=="q3"] <-"x3"

names(mydata)[names(mydata)=="q4"] <-"x4"

print(mydata)

  group gender x1 x2 x3 x4

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

 

# 다음 예제를 위해 변수명 복구.

names(mydata)<-c("group", "gender", "q1", "q2", "q3", "q4")

print( names(mydata) )

[1] "group"  "gender" "q1"     "q2"     "q3"     "q4"

 

# 기존 변수명을 대체할 변수명 생성.

myXs <-paste( "x", 1:4, sep="")

print(myXs)

[1] "x1" "x2" "x3" "x4"

 

# 새 변수을 적용할 위치 발견.

# 3번째와 6번째 변수의 위치를 which함수를 사용하여서 인덱스 번호를 확인.

myA <- which( names(mydata)=="q1" )

print(myA)

[1] 3

 

myZ <- which( names(mydata)=="q4" )

print(myZ)

[1] 6

 

# 새 변수명의 문자 벡터를 이용하여 새 변수로 대체.

names( mydata[ ,myA:myZ] ) <- myXs

print(mydata)

  group 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

 

# 불필요한 오브젝트 삭제.

rm(myXs,myA,myZ)

 


4. S-PLUS

 

mydata<-read.table ("c:/data/mydata.csv",header=TRUE,
sep=",",row.names="id")
print(mydata)
 

#---데이터 에디터 화면을 이용한 변수명 변경.

# 스프레트 쉬트에서 변수명을 클릭후 변경후에 쉬트를 닫는다.

fix(mydata)

print(mydata)

# 위에서 수정한 변수명을 다음 예제를 위하여 변수명 복구.

names(mydata)<-c("group", "gender", "q1", "q2", "q3", "q4")

 

#---names 함수를 사용.

# names함수를 사용하여서 변수명 순서대로 변수명을 나열하는 방법.

names(mydata) <- c("group", "gender", "x1", "x2", "x3", "x4")

print(mydata)

  group gender x1 x2 x3 x4

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

 

# 다음 예제를 위해 변수명 복구.

names(mydata)<-c("group", "gender", "q1", "q2", "q3", "q4")

 

#---edit함수는 변수명 리스트를 변경할수 있다.

# 변수명을 편집후 저장 가능.

names(mydata) <- edit( names(mydata) )

print(mydata)

 

# 다음 예제를 위해 변수명 복구.

names(mydata)<-c("workshop", "gender", "q1", "q2", "q3", "q4")

#--행 인덱스 번호를 이용하는 방법.

# 먼저 names함수를 이용하여 변수명을 추출.

mynames<-names(mydata)

print(mynames)

[1] "workshop" "gender"   "q1"       "q2"       "q3"       "q4"

 

# 변수명을 출력.

print(data.frame(mynames))

mynames

1 workshop

2   gender

3       q1

4       q2

5       q3

6       q4

 

mynames[3]<-"T1"

mynames[4]<-"T2"

mynames[5]<-"T3"

mynames[6]<-"T4"

names(mydata) <-mynames # 열 이름에 새로운 변수명을 넣는다.

print(mydata)

  workshop gender T1 T2 T3 T4

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

 

# 각 변수의 순서. 즉 V1은 column [2]

mynames<-names(mydata) # 작업을 위해 복사본 생성.

print(mynames)

[1] "group"  "gender" "q1"     "q2"     "q3"     "q4"

 

mynames[ mynames=="q1" ] <-"x1"

mynames[ mynames=="q2" ] <-"x2"

mynames[ mynames=="q3" ] <-"x3"

mynames[ mynames=="q4" ] <-"x4"

print(mynames)

[1] "group"  "gender" "x1"     "x2"     "x3"     "x4"

 

# 새 변수명을 적용.

names(mydata) <- mynames

print(mydata)

  group gender x1 x2 x3 x4

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

 

# 다음 예제를 위해 변수명 복구.

names(mydata)<-c("group", "gender", "q1", "q2", "q3", "q4")

# 각 변수명을 직접 변경.

names(mydata)[names(mydata)=="q1"] <-"x1"

names(mydata)[names(mydata)=="q2"] <-"x2"

names(mydata)[names(mydata)=="q3"] <-"x3"

names(mydata)[names(mydata)=="q4"] <-"x4"

print(mydata)

  group gender x1 x2 x3 x4

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

 

# 다음 예제를 위해 변수명 복구.

names(mydata)<-c("group", "gender", "q1", "q2", "q3", "q4")

 

print( names(mydata) )

[1] "group"  "gender" "q1"     "q2"     "q3"     "q4"

 

# 기존 변수명을 대체할 변수명 생성.

myXs <-paste( "x", 1:4, sep="")

print(myXs)

[1] "x1" "x2" "x3" "x4"

 

# 새 변수을 적용할 위치 발견.

# 3번째와 6번째 변수의 위치를 which함수를 사용하여서 인덱스 번호를 확인.

myA <- which( names(mydata)=="q1" )

print(myA)

[1] 3

 

myZ <- which( names(mydata)=="q4" )

print(myZ)

[1] 6

 

# 새 변수명의 문자 벡터를 이용하여 새 변수로 대체.

names( mydata[ ,myA:myZ] ) <- myXs

print(mydata)

  group 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

 

# 불필요한 오브젝트 삭제.

rm(myXs,myA,myZ)

 


5. PROC SQL

proc sql;

  create table mydata as

    select id,

           workshop,

           gender,

           q1 as x1,

           q2 as x2,

           q3 as x3,

           q4 as x4

    from   BACK.mydata;

quit;

 

proc sql;

  create table mydata as

    select *

    from   BACK.mydata(rename=(q1-q4=x1-x4));

quit;

 

proc sql;

  create table mydata(rename=(q1-q4=x1-x4)) as

    select *

    from   BACK.mydata;

quit;

 

proc sql;

  create table mydata as

    select *

    from   BACK.mydata(rename=(q1=x1 q2=x2 q3=x3 q4=x4));

quit;

proc print;run;

id    workshop    gender    x1    x2    x3    x4

 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