수색…


소개

데이터 객체의 클래스는 내용을 처리 할 함수를 결정합니다. 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 표현식으로 "언어"- 객체



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow