R возражают идентификации

Структуры ( ПЕРЕХОДНЫЕ ПРИСТАВКИ , в более общем плане) удобны, когда Вы предоставляете интерфейсу C-compatible реализацию C++, так как они являются портативными через границы языка и форматы компоновщика.

, Если это не беспокойство Вам, тогда я предполагаю, что использование "структуры" вместо "класса" является хорошим коммуникатором намерения (как @ZeroSignal сказал выше). Структуры также имеют более предсказуемую семантику копирования, таким образом, они полезны для данных, Вы намереваетесь записать во внешние медиа или отправить через провод.

Структуры также удобны для различных задач метапрограммирования, как шаблоны черт, которые просто представляют набор зависимых определений типов:

template  struct type_traits {
  typedef T type;
  typedef T::iterator_type iterator_type;
  ...
};

... Но это действительно просто использует в своих интересах уровень защиты структуры по умолчанию быть общедоступным...

114
задан JD Long 24 July 2009 в 14:07
поделиться

4 ответа

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

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 является объектом S3 или S4, вы также можете попробовать методы или showMethods , showClass и т. Д. Патрик Бернс R Inferno имеет довольно хороший раздел по этому поводу (раздел № 7).

EDIT : Дирк и Хэдли упоминают str (obj) в своих ответах. Это действительно намного лучше, чем что-либо из вышеперечисленного для быстрого и даже детального взгляда на объект.

120
ответ дан 24 November 2019 в 02:34
поделиться

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

someObject <- myMagicFunction(...)

, я обычно перехожу к

class(someObject)
str(someObject)

, за которым могут следовать head (), summary (), print (), ... в зависимости от вашего класса.

12
ответ дан 24 November 2019 в 02:34
поделиться
attributes(someObject) 

Can also be useful

7
ответ дан 24 November 2019 в 02:34
поделиться
str(x)

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

59
ответ дан 24 November 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: