2

このトピックに関する 2 つの同様の質問を見てきましたが、探している答えが 2 つのいずれにも見つかりません。as.table 関数は、アルファベット順を左下から左上に変更しますが、グループ内のペインの順序については何もしません。

データ (クライアントの所有物) には、文字と数字の組み合わせであるステーション ID があります。プロットされているすべてのサイトのグループ内に同じ頭文字を持つ一連のサイトがある場合、それらは人間の数え方ではなく、最初の桁で並べ替えられます。たとえば、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 を添付する方法がわかりませんが、誰かがこれを行う方法を教えてくれれば添付します。

4

2 に答える 2

6

その因子変数の水準を予想どおりの順序で指定する必要があります。お気づきのとおり、デフォルトは辞書式です。

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')
于 2013-02-22T21:16:02.730 に答える
6

ここにはいくつかのポイントがあります。

1 つ目は、R では、因子レベルの順序などは、グラフ/分析のプロパティではなく、データのプロパティまたは属性であると見なされることです。そのため、通常、プロットまたは分析関数には順序を指定するための引数はありません。データ オブジェクト自体でその順序を指定すると、すべてのプロットと分析でその順序が使用されます。

順序を変更するには、 関数を使用して目的の順序を指定するか、 や などの関数factorを使用して因子のレベルの順序を変更できます。レベルをデータに表示されるのと同じ順序にしたい場合、この関数はうまく機能します。文字と数字が混在する並べ替えには、gtools パッケージの関数が役立ちます。relevelreorderuniquemixedsort

于 2013-02-22T21:27:10.210 に答える