0

私はいくつかのカテゴリデータをプロットしようとしていますが、この答えは私がやろうとしていることに非常に近いですが、私の場合、この例に示すように国の代わりに日付があります。data.frameから元の行の順序でプロットを作成するにはどうすればよいですか?因子はで同じ順序でdatありmelt.data、プロットのy軸上で順番に並べられていないように見えます。

再現可能な例を次に示します。

library(reshape)
library(ggplot2)

dat <- data.frame(dates=c("01/01/2002", "09/15/2003", "05/31/2012"), Germany = c(0,1,0), Italy = c(1,0,0))
melt.data<-melt(dat, id.vars="dates", variable_name="country")

qplot(data=melt.data,
      x=country,
      y=dates,
      fill=factor(value),
      geom="tile")
4

2 に答える 2

1

あなたの問題はそれdat$datesが要因であり、デフォルトでRはレベルを辞書順に並べ替えていることです。Rそれらが日付であることを知りません。

そう

levels(dat$dates)
## [1] "01/01/2002" "05/31/2012" "09/15/2003"

したがって

order(dat$dates)
## [1] 1 3 2

これらを日付として扱いたい場合は、それらを列Rに変換できますDate

 dat$dates <- as.Date(as.character(dat$dates), format = '%m/%d/%Y')

  # now 
 order(dat$dates)
 ## 1 2 3

あなたが欲しいものはどれですか

于 2012-09-25T00:54:53.020 に答える
1

問題は、日付が文字列として保存されることです。str(dat)データの構造については、を参照してください。

追加することで

dat$dates <- as.Date(dat$dates,"%m/%d/%Y")

データを読み込んだ後、元の順序で日付を取得できます。

于 2012-09-25T00:53:04.537 に答える