2016-08-05 1 views
2

모두 저는 R에서 초보자입니다. 클래스가 R로 어떻게 구성되어 있는지 잘 모르겠습니다. 일부 class() 호출이 하나의 클래스 유형 다른 클래스는 여러 클래스 이름을 반환합니다.클래스()는 여러 개의 다중 클래스 이름을 반환합니다.

예 1

{내 개체 이름은 "sassign"} 여기 내 데이터의 : I 위 (객체) 클래스를한다면, 내가 얻을 지금

acctnum gender state zip zip3 first last book_ nonbook_ total_ purch child youth cook do_it refernce art geog buyer 
1 10001  M NY 10605 106 49 29 109  248 357 10  3  2 2  0  1 0 2 no 
2 10002  M NY 10960 109 39 27 35  103 138  3  0  1 0  1  0 0 1 no 
3 10003  F PA 19146 191 19 15 25  147 172  2  0  0 2  0  0 0 0 no 
4 10004  F NJ 07016 070  7 7 15  257 272  1  0  0 0  0  1 0 0 no 
5 10005  F NY 10804 108 15 15 15  134 149  1  0  0 1  0  0 0 0 no 
6 10006  F NY 11366 113  7 7 15  98 113  1  0  1 0  0  0 0 0 yes 

:

class(sassign) 
[1] "data.frame" 

나는 이것으로 좋습니다. 이 데이터 구조가 데이터 프레임 유형이라는 것을 이해합니다.

예 2 최근에 Wickham의 tibbleR 패키지가 나왔습니다. 는 여기에 내가 Tibble에 데이터 프레임을 변환하는 방법은 다음과 같습니다 내가 잃어버린 된 곳

tib_sassign<-as_data_frame(sassign) 
class(tib_sassign) 
[1] "tbl_df"  "tbl"  "data.frame" 

이입니다. 나는 tbl_df와 tbl의 차이를 모른다. 그러나 Tibble 패키지는 tibble ("tbl"), 데이터 프레임 ("data.frame") 또는 tbl_df ()로 사용할 수있는 객체 (추상 클래스와 유사 함) 단서 tbl_df는을 의미). dplyr 패키지의 온라인 pdf를 읽었지만 설명하지는 않았습니다. 나는 사람들이 위의 의미를 알 것이라고 가정합니다.

나는 RSTudio의 블로그를 에 올려 놓았으나, 위의 결과가 무엇을 의미하는지 설명하지는 못했습니다. 나는 또한 Norman Matloff의 책을 읽었지 만, 이것이 다루어지지는 않는다고 생각합니다. "tbl_df" "tbl" "data.frame"도 검색했지만 대부분의 결과는 작동하지 않는 코드 조각에 관한 것입니다. 위 출력이 의미하는 바를 설명 할 수 없습니다.

예제 3 이제는 R 시리즈의 시계열을 살펴보기 시작했습니다.이 시점에서이 스레드를 시작해야합니다. 가 여기에 내가했던 일이야 : 여기

t_sassign <-data.frame(group_by(sassign,last)) 
t_sassign<-ts(t_sassign,start = c(2014,1),frequency = 12) 
class(t_sassign) 
[1] "mts" "ts"  "matrix" 

, "마지막"달의 #입니다. 나는 내가해야 할 일을 어떻게 든 관리 하겠지만, 나는 여전히 위의 결과가 의미하는 것을 얻지 못한다고 믿는다.

또한 StackOverflow를 통해 검색했지만 대부분의 결과는 Java에서 Class를 반환하는 것에 대한 것입니다.

질문 1) 내가 클래스에서 출력()

은 질문 2) 나 '를 이해할 수 있도록 누군가가 예를 제공 할 수 있다면 굉장 할 것이다 :

나는 세 가지 질문이 누군가가 문제 1에서 논의 된 개념의 응용을 스 니펫 (snippet)으로 제공 할 수 있다면 감사 할 것입니다.이 방법으로, 나는이 개념을 내 뇌 속에 영원히 등록 할 수 있습니다.

질문 3) 질문 3) 이러한 개념을 사용하는 책을 알고 있다면 감사하겠습니다.나는 Norman Matloff와 StackOverflow에 의해 Kabackoff, R에 의해 R 행동을 따르고있다.

도움을 주셔서 미리 감사드립니다.


(추가) 가 여기에 또 다른 혼란 일이 : 내가 한 :

AP<-AirPassengers 
class(AP) 
[1] "ts" 

I 클래스 유형으로 "TS"를 얻었다. 상속 된 클래스는 표시되지 않았습니다. 나는 정말로 길을 잃었다. 제발 도와주세요!

+1

을 나는 이것이 R의 기본 개념에 대한 다양한 질문이기 때문에이 여기에 주제와 간단하게 생각; 그러나, 당신은 여기서'클래스'가 반환하는 것을 읽을 수 있습니다 : http://adv-r.had.co.nz/S3.html –

+0

그래도 나쁜 질문은 아닙니다. 이해할 수없는 downvote. –

+0

고맙습니다. 콘라드. 나는 당신이 올린 링크를 살펴 보았다. 그러나 Wickham은 스레드와 중첩에 더 중점을 둡니다. 클래스() 함수의 세 클래스에 대해 이야기하는지 여부는 확실하지 않습니다. 내가 틀렸다면 나를 바로 잡아주세요. 나는 웹상에서 많은 양의 자료를 보았지만 어떤 자원도 찾을 수 없었다. 설명해 주시면 고맙겠습니다. – watchtower

답변

1

이것은베이스 R에서 나온 것이 아니라 오히려 '할리우드'라고도 불리는 것의 특징입니다. Hadley는 dplyr 패키지를 특별 버전의 데이터 프레임과 함께 사용할 수 있도록 설계했습니다. 참조 : tbl_df 클래스에 대한 설명은 http://www.rdocumentation.org/packages/tibble/versions/1.1/topics/tibble-package입니다. 이 클래스는 print의 버전을 가지고 있습니다. "["및 "[["는 base-R의 함수와 달리 일반적으로 여기에 설명 된대로 데이터 프레임을 처리합니다. 인쇄 형식 및 규칙이 다르면 $[[은 부분 일치 이름을 사용하지 않으며 하위 집합은 항상 data.frame을 반환합니다.

Re : tbl-class에 대한 별도 설명. 지금까지 발견 한 바에 따르면 as.tbl 및 SQL 서버와 같은 다양한 종류의 데이터 소스에 대한 차이점에 대한 설명이 있으므로 dplyr -package docs는 볼 수있는 곳입니다.

수정. 그 패키지는 명명되지 않았습니다 tibbleR

당신은 마지막 질문에 (그 다중 부분 질문에 눈살을 찌푸 렸습니다.) ?inherits은 때때로 "항상 암시 적"클래스의 멤버라고 말할 수 있습니다. 당신은 '숫자'를 테스트하기 위해 is- 기능을 사용 할 수 있음 :

> AP<-AirPassengers 
> class(AP) 
[1] "ts" 
> inherits(AP, "matrix") 
[1] FALSE 
> inherits(AP, "numeric") 
[1] FALSE 
> str(AP) 
Time-Series [1:144] from 1949 to 1961: 112 118 132 129 121 135 148 148 136 119 ... 
> inherits(as.matrix(AP), "numeric") 
[1] FALSE 
> inherits(as.matrix(AP), "matrix") 
[1] TRUE 
> str(as.matrix(AP)) 
num [1:144, 1] 112 118 132 129 121 135 148 148 136 119 ... 
> inherits(as.matrix(AP), "integer") 
[1] FALSE 
> is.numeric(as.matrix(AP)) 
[1] TRUE 
> ?inherits 
관련 문제