수색…
소개
데이터 객체의 클래스는 내용을 처리 할 함수를 결정합니다. class
속성은 문자 벡터이며 객체는 0, 하나 이상의 클래스를 가질 수 있습니다. 클래스 속성이 없으면 객체 mode
의해 결정되는 암시 적 클래스가 여전히 존재 mode
. 클래스는 함수 class
로 검사 할 수 있으며 class<-
function class<-
로 설정하거나 수정할 수 있습니다. S3 클래스 시스템은 S 사 초기에 설립되었습니다. 보다 복잡한 S4 등급 시스템은 나중에 설립되었습니다.
비고
객체의 "유형"을 검사하는 몇 가지 기능이 있습니다. 가장 유용한 그러한 함수는 class
. 때때로 객체의 mode
를 검사 할 필요가있다. "유형"에 대해 논의하고 있기 때문에 typeof
가 유용하다고 생각할 수도 있지만 명시 적 "클래스"속성이없는 객체는 결정된 "암시 적 클래스"에 의해 결정된 함수 디스패치를 가지기 때문에 일반적으로 mode
의 결과가 더 유용합니다. 모드에 따라.
벡터
R에서 사용할 수있는 가장 간단한 데이터 구조는 벡터입니다. c()
함수를 사용하여 숫자 값, 논리 값 및 문자열의 벡터를 만들 수 있습니다. 예 :
c(1, 2, 3)
## [1] 1 2 3
c(TRUE, TRUE, FALSE)
## [1] TRUE TRUE FALSE
c("a", "b", "c")
## [1] "a" "b" "c"
c()
함수를 사용하여 벡터에 참여할 수도 있습니다.
x <- c(1, 2, 5)
y <- c(3, 4, 6)
z <- c(x, y)
z
## [1] 1 2 5 3 4 6
벡터를 만드는 방법에 대한보다 정교한 처리 방법은 "벡터 만들기" 항목 에서 찾을 수 있습니다.
수업 검사
R의 모든 객체에는 클래스가 할당됩니다. class()
를 사용하여 객체의 클래스를 찾고 str()
을 사용하여 구조에 포함 된 클래스를 비롯하여 구조를 볼 수 있습니다. 예 :
class(iris)
[1] "data.frame"
str(iris)
'data.frame': 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 ...
class(iris$Species)
[1] "factor"
아이리스에는 data.frame
클래스가 있으며 str()
사용하면 내부의 데이터를 검사 할 수 있습니다. 홍채 데이터 프레임의 종 (Species)은 클래스 계수 (Class Factor)이며 다른 변수는 클래스 숫자입니다. str()
함수는 변수의 길이를 제공하고 처음 몇 개의 관측 값을 표시하지만 class()
함수는 객체 클래스 만 제공합니다.
벡터 및 목록
R의 데이터는 벡터에 저장됩니다. 일반적인 벡터는 모두 동일한 저장 모드 (예 : 문자 벡터, 숫자 벡터)를 갖는 일련의 값입니다. 참조 ?atomic
원자 암시 클래스에 대한 자세한 내용 및 해당 저장 모드에 대한 : "logical", "integer", "numeric" (synonym "double"), "complex", "character"
및 "raw"
. 많은 클래스는 단순히 class
속성이 맨 위에있는 원자 벡터입니다.
x <- 1826
class(x) <- "Date"
x
# [1] "1975-01-01"
x <- as.Date("1970-01-01")
class(x)
#[1] "Date"
is(x,"Date")
#[1] TRUE
is(x,"integer")
#[1] FALSE
is(x,"numeric")
#[1] FALSE
mode(x)
#[1] "numeric"
목록은 특수한 유형의 벡터로, 각 요소는 다른 목록, 심지어는 다른 목록 일 수 있습니다. 그러므로 목록의 R 용어 : "재귀 벡터":
mylist <- list( A = c(5,6,7,8), B = letters[1:10], CC = list( 5, "Z") )
목록에는 두 가지 중요한 용도가 있습니다.
함수는 하나의 값만 반환 할 수 있기 때문에 복잡한 결과를 목록으로 반환하는 것이 일반적입니다.
f <- function(x) list(xplus = x + 10, xsq = x^2) f(7) # $xplus # [1] 17 # # $xsq # [1] 49
목록은 또한 데이터 프레임 의 근본적인 기본 클래스입니다. 후드에서 데이터 프레임은 모두 길이가 같은 벡터의 목록입니다.
L <- list(x = 1:2, y = c("A","B")) DF <- data.frame(L) DF # x y # 1 1 A # 2 2 B is.list(DF) # [1] TRUE
재귀 적 벡터의 다른 클래스는 R 표현식으로 "언어"- 객체