Идентификация R-объектов

Я часто в конечном итоге с функцией производства выход, для которого я не понимаю, тип выходных данных. Я ожидаю список, и он заканчивается в списке списков или кадр данных или что-то еще. Каков хороший метод или рабочий процесс для выяснения типа выходных данных при первом использовании функции?

Ответ на: "Идентификация R-объектов"

Количество ответов:4

Если я получаю "someObject", скажем, через

someObject <- myMagicFunction(...)

, то я обычно продолжают

class(someObject)
str(someObject)

, которые могут сопровождаться головой (), резюме (), печать (), ... в зависимости от класса у вас есть.

attributes(someObject) 

также может быть полезным

Я обычно начинаю с некоторой комбинации:

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)

. Др.

Если obj is an S3 or S4 object, you can also try является объектом S3 или S4, вы также можете попробовать methods or или showMethods, , showClass, etc. Patrick Burns' и т.д. Патрик Бернс R Inferno has a pretty good section on this (sec #7). имеет довольно хороший раздел по этому вопросу (#7).

EDIT : Дирк и Хэдли упомянуть str(obj) in their answers. It really is much better than any of the above for a quick and even detailed peek into an object. в своих ответах. Это действительно гораздо лучше, чем любой из вышеперечисленных для быстрого и даже подробно заглянуть в объект.

str(x)

Это все, что вам нужно запомнить в 99% случаев.