2012-11-09 45 views
0

我可能是一個白癡,但我無法在文檔中找到如何顯示對象。 我安裝的軟件包會返回一個名爲a的對象。使用R語言查看數據

我怎樣才能弄清楚它裏面有什麼?這個 對象中有一些矩陣和數字是我需要的。

(我承認一年前(上次我不得不使用R)我遇到了同樣的問題,我在Google搜索了一個小時後發現了一個解決方案 這次我在20分鐘後失去了耐心,可憐我)。

回答

7

str()函數擅長揭示一個對象的一般結構。您可能需要了解如何顯示某些類型的對象。矩陣不會說「矩陣」,但有相當與名稱顯示[行的cols]

> str(matrix(NA, 4,4)) 
logi [1:4, 1:4] NA NA NA NA NA NA ... 

有跡象表明,對於在內置summary功能。再就是dataframes改進一個describe功能的各種版本是可以用來確定lengthclassmode功能,以及其他功能。

+0

謝謝。我發現names()函數完成了這個技巧。美麗的語言!不!我想我把搜索時間提高到了30分鐘! – Matyas

+0

如果你提到你正在處理一個列表,即第一次使用'class'函數,它會有所幫助。 '名稱'不會在矩陣上工作。它將在一些原子向量上工作,但不是全部。 「str」對大多數課程都有效。 –

+0

謝謝DWin的確如此。我不知道class()是什麼......我讀了(109頁)「R介紹」,它沒有以class()函數爲特徵的例子。它確實提到了unclass()函數,所以我想我可以想出它。也許這也是相關的:「被稱爲對象類的特殊屬性用於允許面向對象......」(第21頁)。 – Matyas

8

您可以鍵入

a 

或者

str(a) 

或者

summary(a) 

這些都是很好的開始

+0

summary()看起來很有用。謝謝! – Matyas

3

真正的解決辦法是閱讀包的文檔。例如,要從GLM中獲取擬合值,請執行fitted(a)。要獲得與splancs:nndistG的最近鄰距離,您將獲得a$dists

如果程序包中函數的返回值沒有記錄,請告訴維護人員。這是一個錯誤。

如果你在一個對象的結構中進行挖掘,認爲a$foo是你想要的而沒有任何文檔,那麼你就有可能沒有得到你認爲你得到的東西。例如,假設模型擬合函數具有一個$resid組件。你不知道這些殘留是什麼樣的。

此外,不能保證軟件包的升級將保持相同的定義$resid,並且可能沒有記錄該更改,因爲作者並不期望人們在對象的內臟中四處挖掘。