R 개체 식별


119

나는 종종 출력 데이터 유형을 이해하지 못하는 출력을 생성하는 함수로 끝납니다. 나는 목록을 기대하고 있으며 목록이나 데이터 프레임 또는 다른 목록으로 끝납니다. 함수를 처음 사용할 때 출력 데이터 유형을 알아 내기위한 좋은 방법 또는 워크 플로는 무엇입니까?

답변:


126

나는 보통 다음과 같은 조합으로 시작합니다.

typeof(obj)
class(obj)
sapply(obj, class)
sapply(obj, attributes)
attributes(obj)
names(obj)

공개 된 내용에 따라 적절하게. 예를 들어 다음과 같이 시도하십시오.

obj <- data.frame(a=1:26, b=letters)
obj <- list(a=1:26, b=letters, c=list(d=1:26, e=letters))
data(cars)
obj <- lm(dist ~ speed, data=cars)

..기타.

경우 objS3 또는 S4 개체입니다, 당신은 또한 시도 할 수 있습니다 methods또는 showMethods, showClass등 패트릭 번즈 R 지옥은 이것에 꽤 좋은 섹션 (초 # 7)를 갖는다.

편집 : Dirk와 Hadley str(obj)는 답변에서 언급 합니다. 개체를 빠르고 자세히 들여다 볼 수있는 위의 어느 것보다 훨씬 낫습니다.


1
나는 R Inferno를 통해 그렇게 멀리 만들지 않았다고 생각합니다. 저를 다시 보내 주셔서 감사합니다.
JD Long

3
아직 보지 못했다면 "15 페이지 이하의 S4 개체"[ stat.auckland.ac.nz/S-Workshop/Gentleman/S4Objects.pdf ]를 읽어보십시오 (자세한 내용 포함).
ars

나는 그것을 보지 못했습니다. 링크 주셔서 감사합니다. 그것은 입장료의 가치가있었습니다. :)
JD Long

이 제안을 인코딩하는 작은 유틸리티 함수를 만들었습니다. tellMeAboutThis.r
eludom

65
str(x)

99 %의 경우에 대해 기억해야 할 모든 것입니다.


2
str(x, max.level=1)x가 다중 계층 ggplot이면 유용 할 수 있습니다!
PatrickT 2015 년

7
str (UCTURE) 기억하기 어렵습니다. 왜냐하면 저는 "문자열"을 계속 생각하기 때문입니다.하지만 오, 너무 유용합니다. strUCTURE를 10 번만 말하면됩니다.
Dmitri

13

내가 'someObject'를 얻으면 다음을 통해 말하십시오.

someObject <- myMagicFunction(...)

그런 다음 일반적으로

class(someObject)
str(someObject)

가지고있는 클래스에 따라 head (), summary (), print (), ...이 뒤따를 수 있습니다.


방금 str (obj)을 시도했습니다. 문자열 표현에서 예상했던 것보다 훨씬 더 많았습니다. 매우 깔끔합니다! 감사.
ars

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.