2013-04-02 103 views
2

我想知道什麼類型的數據庫是data.frame。如果我們看看這個答案at Quora,我們有一個很好的指導什麼類型的數據庫。粗略地說,我們有關係數據庫(我猜這不是Data.Frame的情況)和noSQL數據庫(柱狀,鍵值,文檔存儲和圖形)。什麼類型的數據庫是data.frame?

所以,我的問題是:什麼樣的數據庫是data.frame?

回答

4

數據框是一種關係。每一行都是一個元組,每一列都是一個屬性。請參閱:

https://en.wikipedia.org/wiki/Relation_%28database%29

但它是嚴格有序的,所以我想DB理論純粹主義者會堅持也有它定義了R使用排序隱藏屬性。

+2

有rownames。 –

+0

是的,關於破壞純關係模型的數據框的一些事情,比如行名,排序和其他屬性。現在,它們是否符合ACID標準...... – Spacedman

+0

您是在問他們是否符合ACID標準或說明他們是? –

4

數據框不是數據庫。它更像是關係數據庫中的單個表格,或電子表格中的單個表格。

在R方面,您也可以將其視爲列表和矩陣的混合。這就像一個非嵌套的列表,每個元素具有相同的長度,就像一個矩陣,每列可以包含不同類型的原子變量。

+4

關係數據庫中的表格是'關係'。有些人認爲術語'關係'指的是做外鍵(即將一張表與另一張表相關),但不是。數據框架是一種關係。 – Spacedman

3

嚴格地說,在R中,數據幀實際上是一個長度相等的向量列表,用於存儲表格等數據。數據幀的每一列是等長向量之一,即數據幀列表的每個元素是該表的一列。它們很有用,因爲您可以在每列中混合使用數據類型,例如一列可以有一個數字,下一列可以有一個因子,就像R中的列表可以有混合的數據類型一樣。這是您選擇矩陣(僅允許一種數據類型)的數據框架的原因之一。