데이터셋의 변수 별 세부 유형이나, 데이터셋의 구조를 파악하고자 할 때 R에서는 is.*() 함수를 통해 확인할 수 있습니다. 물론 RStudio의 환경창을 통해 데이터셋의 구조를 파악할 수 있지만, is.*() 함수를 활용 의의는 논리형 데이터로 출력할 수 있다는 특징이 있습니다.

 

21. is.*() 함수로 데이터 유형 판별

더보기

(1) 문자형 판별 함수, is.character()

is.character() 함수는 데이터가 문자 유형인지 판별하는 함수입니다. 반환 결과로 논리값을 출력합니다.

is.character(student_dataset$name)

 

(2) 실수형 데이터 판별 함수, is.numeric()

is.numeric() 함수는 데이터가 실수형인지 판별하는 함수입니다. 

is.numeric(student_dataset$korean)
is.numeric(student_dataset$math)

 

(3) 정수형 데이터 판별 함수, is.integer()

is.integer() 함수는 데이터가 정수형인지 판별하는 함수입니다. 

is.integer(student_dataset$korean)
is.integer(student_dataset$math)

출력 결과를 확인해보면 실수로 정의한 korean 변수에 대해서는 FALSE를 반환하는 것을 알 수 있습니다.

 

(4) 논리형 데이터 판별 함수, is.logical()

is.logical() 함수는 데이터가 논리형인지 판별하는 함수입니다. 코드는 다음과 같습니다.

is.logical(student_dataset$test_pass)

 

(5) 팩터형 데이터 판별 함수, is.factor()

is.factor() 함수는 데이터가 팩터형인지 판별하는 함수입니다. 코드는 다음과 같습니다.

is.factor(student_dataset$gender)

 

21.2. is() 함수로 데이터셋 구조 판별

더보기

(1) is.atomic()

atom(원자)은 데이터 구조의 스칼라의 다른 이름으로써, is.atomic() 함수는 해당 데이터가 스칼라인지 판별하는 함수입니다. 코드는 다음과 같습니다. 

is.atomic("Data_Analytics_With_R")

 

 

(2) is.vector()

is.vector() 함수는 데이터셋의 구조가 벡터인지 판별하는 함수입니다. 코드는 다음과 같습니다. 

is.vector(student_dataset$name)

 

(3) is.matrix()

is.matrix() 함수는 데이터셋의 구조가 행렬인지 판별하는 함수입니다. 코드는 다음과 같습니다.

is.matrix(student_dataset)

 

(4) is.data.frame()

is.data.frame() 함수는 데이터셋의 구조가 데이터프레임인지 판별하는 함수입니다. 코드는 다음과 같습니다.

is.data.frame(student_dataset)

 

(5) is.array()

is.array() 함수는 데이터셋의 구조가 배열인지 판별하는 함수입니다. 코드는 다음과 같습니다.

is.array(student_dataset)

 

(6) is.list()

is.list() 함수는 데이터셋의 구조가 리스트인지 판별하는 함수입니다. 코드는 다음과 같습니다.

is.list(student_dataset)

출력 결과를 확인해보면 student_dataset은 데이터프레임으로 정의했지만, is.list() 함수에서도 TRUE값을 반환받았습니다. 이러한 이유에 대한 논의는 아래에서 설명하겠습니다. 

 

PLUS) class() 함수, typeof() 함수와, mode() 함수에 대한 논의

더보기

R에서는 객체(Object)를 파악하는 함수로써 대표적으로 class() 함수, mode() 함수, typeof() 함수가 있습니다. class() 함수는 객체지향프로그래밍(상속성)의 관점에서 객체를 파악하고, typeof() 함수는 R의 원시적 언어 구조로써, mode() 함수는 R의 전신인 S1의 원시적 언어 구조에서 객체를 파악합니다. 자세한 내용은 <stackoverflow의 게시글>에서 확인하세요. 이러한 차이를 파악하고자 하는 코드는 아래와 같습니다. 

class(student_dataset)
typeof(student_dataset)
mode(student_dataset)