2013-02-22 18 views
2

我已經看了這個主題的兩個類似的問題,但沒有找到我在兩個任何一個尋找答案。 as.table函數改變了從左下開始到左上開始的字母順序,但對組內的窗格順序沒有任何影響。格點圖板的指定順序

數據(這是我的客戶專有的)有站點標識是字母和數字的組合。當所繪製的所有地點組中有一系列首字母相同的網站時,它們按照第一位數進行排序,而不是按照我們人類的計數方式進行排序。例如,SW-1,SW-10,SW-11,SW-2,SW-3。我希望他們的順序SW-1,SW-2,SW-3,SW-10,SW-11。我使用的代碼是:

xyplot(as.d$quant ~ as.d$sampdate | as.d$site, ylim=range(as.d$quant), xlim=range(as.d$sampdate), 
main='Arsenic By Time', ylab='Concentraion (mg/L)', xlab='Time') 

我不知道如何安裝導致情節的.PDF,但會做,如果有人給我看如何做到這一點。

+0

通常最好發佈PNG版本。當您打開編輯窗口時,會在{}圖標右側出現綠色正方形圖標,讓您可以從計算機上傳文件。 – 2013-02-22 22:14:11

回答

6

您需要在您期望的順序中指定該因子變量的級別。默認值是lexigraphic爲你注意到:基於目前的問題是如何代表

xyplot(as.d$quant ~ as.d$sampdate | factor(as.d$site, 
              levels=1:length(unique(as.d$site))) , 
     ylim=range(as.d$quant), xlim=range(as.d$sampdate), 
     main='Arsenic By Time', ylab='Concentration (mg/L)', xlab='Time') 

,你可能需要:

require(gtools) 
xyplot(as.d$quant ~ as.d$sampdate | factor(as.d$site, 
            levels=mixedsort(as.character(unique(as.d$site)))) , 
     ylim=range(as.d$quant), xlim=range(as.d$sampdate), 
     main='Arsenic By Time', ylab='Concentration (mg/L)', xlab='Time') 
+0

謝謝大衛。現在我將重新排列文本文件中的網站,並將它們重新讀入R. – 2013-02-22 21:32:51

+0

是的。並且使用gtools中的'mixedsort'函數。我上面的回答是基於你之前在Rhelp上發佈的內容,它與上面顯示的不同。 – 2013-02-22 22:03:38

5

有幾個點的位置。

首先,在R中,像因子水平的順序被認爲是數據的屬性或屬性,而不是圖/分析的屬性。因此,繪圖或分析函數中通常沒有用於指定順序的參數,而是在數據對象本身中指定該順序,然後所有繪圖和分析均使用該順序。

要改變,你可以使用factor函數指定所需的訂單的訂貨,也可以使用功能,如relevelreorder改變的一個因素級別的順序。如果您希望這些級別與數據中出現的順序相同,那麼unique函數可以正常工作。對於混合字符和數字進行排序,gtools包中的mixedsort函數可能很有用。

+0

謝謝,Greg。現在很明顯,您指出我需要在將數據讀入R之前對數據進行排序或使用其中一個可用函數。 – 2013-02-22 21:31:57

+2

不完全。排序數據不會做任何事情。你需要重構你的因子變量。 – 2013-02-22 22:15:22