top of page
  • 작성자 사진JC.kim

[R Programming] 객체와 데이터프레임


이번엔 R 프로그램에서 객체의 이름을 정의해 보자. 저번에 배웠던 벡터에 대해 이름을 부여할 것이며, 그 함수는 names 를 사용할 것이다.


x <- c (0,1)

names(x)<- c("F","M")

이렇게 함수를 입력하면, x 벡터의 0과 1객체에 각각 F , M 이라는 값이 부여된다. 여기서 주의할 것은 문자에는 항상 따옴표 (")를 사용한다는 것을 알고 있어야 한다.

이번에는 factor를 사용하여 범주형 변수를 생성해 보자. 학점이라는 카테고리의 범주형 변수를 생성한다고 할 때 ,


score <- c("A","B","C","F")

score_factor <- factor(score)

이런 식으로 입력하면, score 이라고 정의된 벡터에, A,B,C,F 라는 객체가 생성되고, 여기에 factor라는 함수를 입력하면, score_factor라는 범주형변수가 생성된다. 이를 만약 자신이 원하는 순서대로 정렬하고 싶다면,


score_factor1 <- factor(score, ordered = TRUE, levels = c("F","C","B","A"))

ordered 가 순서를 정해주는 역할을 한다. ordered의 값이 TRUE 면 순서형, FALSE면 명목형 값을 취한다. 순서형 값으로 선언되어, level 함수로 값의 레벨을 지정할 수 있다.



이번엔 행렬에 이름을 붙여보자. dimnames, colnames, rownames 함수들을 이용하여 이름을 붙일 수 있다. 먼저 정규분포의 평균이 0이고 표준편차가 1인 15개의 객체를 생성해 보자.


x <- matrix(rnorm(15),now=3)

정규분포의 기본값이 평균=0 std=1 이므로 따로 선언하지 않고, 15개 객체를 3개의 행으로 만들었다. 그리고 각 열에 이름을 x1,x2,x3,x4,x5로 붙여볼 것이다.


dimnames(x)[[2]]<-paste("x",1:5,sep="")

여기서 [[ ]] 내부의 값이 2이면 열을 의미하고, 1이면 행을 의미한다. 만약 행에 이름을 붙이고 싶으면, [[1]]로 쓰면된다. paste는 객체를 문자열로 바꿔주는 함수이다. 이 행렬의 data frame인지 확인하고 싶다면,


is.data.frame(x)

data frame과 일반 matrix의 차이는, matrix는 일반 객체 값을 그냥 나열한 값이라면, data frame은 각 값들에 대한 정보를 포함하고 있는 객체의 모임이라고 할 수 있다. data frame의 정의는 아래와 같이 할 수 있다.


x1<-as.data.frame(x)

그리고 이 x1에 대해서 다시 data frame인지 판별해보면, TRUE 값을 출력할 것이다.


각 변수 값을 출력하고 싶다면, x$x1 을 사용하면, x1 인자의 변수값들 출력할 것이다. 인자 x1의 평균과 표준편차 또한, mean(x$x1) , std(x$x1) 이렇게 써주면 x1인자에 대해서만, 계산을 해준다. 만약 x 행렬에 대해 모든 통계량에 대해 알고 싶다면,


summary(x)

위의 함수를 사용하면 아래처럼, x 행렬에 대한 모든 연산값이 출력된다.

여기까지 객체 이름의 정의와 Data Frame에 대해 알아보았다. 다음엔 행렬의 연산에 대해 공부해 볼 것이다. 위의 내용은 포항공과대학교 인터넷 강의(MOOC)를 바탕으로 작성하였다. 매 학기마다 인터넷 무료강좌가 열리며, 일정만큼 수료를 하면 수료증도 준다.



AI. 빅데이터, IoT관련 수업을 들을 수 있으므로, 참고해서 강의를 들으면 더 도움이 될 것이다.


조회수 142회댓글 0개

최근 게시물

전체 보기

bottom of page