【问题标题】:Correct terminology for object "elements" in R [closed]R中对象“元素”的正确术语[关闭]
【发布时间】:2018-08-01 01:37:05
【问题描述】:

列表由元素组成。我认为这是正确的术语。或者它们被称为组件?例如,

list(c("row1", "row2"), c("C.1", "C.2", "C.3")))

有 2 个元素(组件?)。元素组件的正确术语是什么?

这是第一个元素的第一个(也是唯一一个)组件

[1] "row1" "row2"

这是第二个元素的第一个(也是唯一一个)组件

[1] "C.1" "C.2" "C.3"

这是正确的术语吗?元素由组件组成?或者说这个的正确方式是什么?另外,我在哪里可以找到这种事情的官方术语?

【问题讨论】:

  • 你的编程问题是什么?
  • This 可以提供帮助。
  • @ANG,感谢您的链接。哇,好像没有合适的术语!我在那里看到的是“给出(顶级)组件的数量”,所以我假设我们必须使用“组件的组件”之类的术语。我觉得不太好。
  • 不客气!我认为人们必须记住的最重要的事情之一是“R 列表是 一个由对象的有序集合组成的对象,称为其组件”并且 没有特别需要组件必须属于同一类型”。PS:列表组件也是对象。
  • @ANG,对。我看到了这一点,这是最重要的部分,但继续阅读我意识到组件的组件并没有任何术语。顺便说一句,您使用了“对象”一词。有没有感觉这些对象有方法?我最近在某处读到该术语,R 中的“对象”术语与其他语言中的术语并不完全相同。你同意吗?

标签: r list terminology


【解决方案1】:

“元素”和“组件”都表达了这个想法。我不认为任何一个是官方的或正式的。例如,Advanced R 中的Data structures 章节多次使用术语“元素”,但您找不到“组件”。尽管如此,the documentation@ANG 确实暗示“组件”可能是原创的。

就您的情况而言,列表list(c("row1", "row2"), c("C.1", "C.2", "C.3")) 有两个元素,并且两个元素都是向量:

  1. c("row1", "row2")
  2. c("C.1", "C.2", "C.3")

到目前为止你是对的。

但是,该列表的第一个元素,向量c("row1", "row2"),有两个元素,"row1""row2"。同样的概念也适用于c("C.1", "C.2", "C.3"),它是该列表的第二个元素,并且在向量中有三个元素

此外,要了解 R 中的对象是什么,让我引用 John Chambers 的话:

存在的一切都是对象。发生的一切都是函数调用。

【讨论】:

  • @ANG 再次感谢。我不确定受人尊敬的约翰·钱伯斯是否以标准方式使用了“对象”一词。我不认为 R 是硬核 OOP,但我不确定。我尝试了ANG建议的方法(class=“data.frame”),返回的函数集合似乎不在data.frame的定义中。也许这些方法是从一些更高级别的类继承的,我不确定。关于 Advanced R 中的术语元素,使用它的事实让我相信没有标准术语(这是不幸的)。
  • 另一方面,面对提出这样的术语的问题,由于列表的极端灵活性,可能会很困难。我猜你可以有列表列表的列表。鉴于此,不确定如何设计一个好的术语。
  • @onyourmark 对象类不是在创建过程中定义的,而是使用setClass 函数。你从methods(class = "data.frame")看到的方法都是R中的独立函数。例如,unique包括unique.data.frameunique.array等。因此你可以在data.frame和array类上使用unique函数,并且两者data.frame 和 array 有一个称为“唯一”的方法。我不确定它是否是标准的 OOP。
  • @onyourmark 你是对的,我们可以有列表列表的列表,但实际上很少有人会以这种方式创建和存储数据。此外,元素可以有各自的名称,所以如果你真的需要的话,你可以用名字来称呼它们。
猜你喜欢
  • 2013-05-16
  • 2016-01-14
  • 2020-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-23
  • 1970-01-01
  • 2014-02-11
相关资源
最近更新 更多