R에서 새로운 컬럼 혹은 변수 생성하고 값 부여하기 I
우리가 사용하고 있는 데이터에 새로운 변수(혹은 컬럼)을 생성해야 할 경우가 있습니다. 예를 들면 남자는 M, 여자는 F로 코딩되어진 GENDER라는 변수가 데이터에 있다고 가정하고 만약 연구자가 이 변수를 남자는 0, 여자는 1로 코딩되어진 새로운 변수를 만들고 싶다면 어떻게 하면 될까요?
첨부되어진 practice.csv 파일을 가지고 새로운 변수(컬럼)을 생성하고 값을 부여하는 법을 살펴보고자 합니다.
우선 데이터를 불러오자. practice.csv 파일을 불러오고 p 라는 이름을 부여하였습니다.
p <- read.csv("practice.csv", stringsAsFactors=FALSE)
그리고 데이터에 있는 변수를 확인하기 위해서
str(p) 를 실행하였다. 그 결과는 다음의 그림과 같습니다.
그 결과 ID 변수와 GENDER 변수가 있고 ID 변수는 integer 타입이고 GENDER은 character 타입임을 보여주고 있습니다.
자, 그러면 새로운 변수를 생성해보겠습니다. 명령어의 형태는 다음과 같습니다.
데이터명$새로운 변수명[조건] <- 값
p$GENDER_N[p$GENDER == "M"] <- 0 # GENDER 변수의 값이 M과 같으면 GENDER_N 변수에 0을 입력
p$GENDER_N[p$GENDER == "F"] <- 1 # GENDER 변수의 값이 F와 같으면 GENDER_N 변수에 1을 입력
그 결과는 다음과 같습니다.
참고로 만약 0 대신에 "0" 혹은 1 대신에 "1"을 입력하면 숫자형이 아닌 문자형으로 인식하게 됩니다.
p$GENDER_N[p$GENDER == "M"] <- "0" # GENDER 변수의 값이 M과 같으면 GENDER_N 변수에 0을 입력
p$GENDER_N[p$GENDER == "F"] <- "1" # GENDER 변수의 값이 F와 같으면 GENDER_N 변수에 1을 입력
이 데이터를 p라는 이름으로 사용할 경우에는 R 프로그램에서 나가기 전까지 혹은 또 다른 업데이트를 하기 전가지는 ID와 GENDER 그리고 GENDER_N 변수가 데이터 상에 있습니다. 만약 csv 파일 형태로 저장하고 싶다면 write.csv(p, "practice.csv")라고 입력하면 됩니다. 그러면 기존에 있던 practice 파일에 덮어쓰기가 됩니다.
이 외에도 새로운 변수를 추가하는 방법들은 많이 있다. 추후 하나씩 더 살펴보겠습니다.