[여러가지 시도]/ADsP

2장 데이터 타입_R을 이용한 데이터 처리&분석 실무 (18.09.03~18,09,09)

시간 확보러 2018. 9. 10. 16:15
728x90

안녕하세요. 소신있는 삶을 꿈꾸는 BL(Belief Life)입니다.

 

 이번주 공부한 내용과 하면서 힘든점을 공유 하고자 포스팅 합니다.

교재의 1장은 "R 프로그래밍을 위한 환경 준비하기"로써 정리할 내용이 없어 2장부터 정리합니다.

 

 

학습범위

- 2장 데이터 타입

 

 

학습내용 (주로, 제가 공부하면서 헷갈린 내용 위주로 정리하였습니다.)

 

▣ <-와 =의 차이

할당 연산자 중 =는 명령의 최상위 수준에서만 사용할 수 있는 반면 <-는 어느 곳에서나 사용할 수 있다. 따라서 함수 호출과 동시에 변수에 값을 할당하는 목적으로는 <-만 사용할 수 있다. 다음은 1,23,을 저장한 벡터를 x에 할당한 후 이 값들의 평균을 구하고 x에 저장된 값을 출력한 예다.

 

 

같은 상황에서 =를 사용하면 x에 값이 저장되지 않는다.

 

 

이 차이 때문에 =를 사용하면 경우에 따라 표현력에 한계가 있어, 이 책에서는 <-연산자를 사용한다.

 

 

▣ NULL과 NA의 차이

NA는 결측치, 즉 값이 빠져 있는 경우를 뜻한다. 결측치가 존재하는 이유로는 데이터 입력 중 실수로 값을 입력하지 않은 경우, 값을 어떤 이유로든 관찰되지 못한 경우 (예를 들어, 인구 조사에서 특정 가구가 소득을 기재하지 않은 경우), 마지막으로 해당 항목에 적절한 값이 없어서 값이 입력되지 않은 경우(예를 들어, 약품의 냄새를 기록하고 있는 칸에서 특정 약품은 향이 없는 경우)를 들수 있다.

 

반면, NULL은 프로그래밍의 편의를 위해 미정(undefined) 값을 표현하는 데 사용하는 개념이다. is_even이라는 변수에 a 변수의 값이 짝수면 TRUE, 홀수면 FALSE를 저장하는 다음 예를 보자.

 

is_even <- NULL

if (a가 짝수면) {

   is_even <- TRUE

} else {

   is_even <- FALSE

}

 

위 코드에서 if 조건문이 실행되기 전에는 is_even에 어떤 값을 줘야 할지 알 수 없어 NULL로 초기화했다. 그리고 if 문을 지나면서 is_even에 적절한 값이 할당 되었다. 이처럼 NULL은 변숫값이 아직 미정인 상태를 표현하는 목적으로 사용한다.

 

벡터 관련 함수

c : 주어진 값들을 모아 벡터를 생성한다.

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

c(

   ...  # 벡터로 모을 R 객체들

  )

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

반환 값은 벡터다

 

 

행렬 생성 함수

matrix  행렬을 생성한다.

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

matrix(

   data,                                # 행렬을 생성할 데이터 벡터

   nrow,                               # 행의 수

   ncol,                                # 열의 수

   byrow=FALSE,                    # TRUE로 설정하면 행우선, FALSE일 경우 열 우선으로 데이터를 채운다. (byrow값이 생략되면 FALSE이므로 행렬 값이

                                            좌측 열부터 채워진다.)

   dimnames=NULL                # 행렬의 각 차원에 부여할 이름

)

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

반환 값은 행렬이다.

 

 

 

 

 

 

 

728x90