1

R のhexbinパッケージを使用して、画面解像度別に Web サイトへのアクセスをプロットしたいと思います。私の現在のデータセットは次の形式です。

Width   Height   Visits
1366    768      507089
1280    800      401926
1024    768      293210
...     ...      ...

完全なデータセットはこちらから入手できます: http://cl.ly/1t132z0u0l1W

x 軸に幅、y 軸に高さをプロットし、Visits を使用してセルのサイズや色を変更したいと思います。Hexbin には、セル値を定義できる配列を出力する hexTapply 関数が含まれていますが、データに対して期待どおりに機能しません。

次のコードを使用しています。

screenres <- read.csv(file="screenres2013.csv",head=TRUE,sep=",")
width <- screenres$Width
height <- screenres$Height
visits <- screenres$Visits

hbin <- hexbin(width,height,xbins=20,IDs=TRUE)
P <- plot(hbin,type='n')

hVisits <- hexTapply(hbin,visits,sum)
pushHexport(P$plot.vp)
grid.hexagons(hbin,style='lattice',use.count=FALSE,cell.at=hVisits)

grid.hexagons() を実行すると、次のエラーが表示されます。

Error in unit(x, default.units) : 'x' and 'units' must have length > 0
In addition: Warning message:
In min(cnt, na.rm = TRUE) : no non-missing arguments to min; returning Inf

hVisits を次のように変更すると、

hVisits[1] <- 1

grid.hexagons() を再試行すると、期待どおりに実行されます。

ドキュメントのどの例でも、このエラーは発生していません。何が問題を引き起こしているのか、または hVisits への小さな変更が関数の実行に影響を与える理由がわかりません。これは私のデータに問題があるのでしょうか、それとも重要なステップが抜けているのでしょうか?

私はRを初めて使用します(昨日ダウンロードしました)ので、追加情報が役立つかどうか教えてください。お時間をいただきありがとうございます。

4

0 に答える 0