0

Rにはループがあります。ループ内の変数でデータフレームをサブセット化したいと思います。コードを次のようにしたいと思います。

library(maptools)
for(theMonth in 600: 0)
{
  Inspections.mp <- readShapeLines("InspDates2")
  counties.mp <- readShapePoly("Boundary")
  plot(counties.mp, axes=FALSE, border="gray")
  data1 <-Inspections.mp[Inspections.mp$MonthInt == theMonth]
  lines(data1, col="blue", lwd=1)
}

残念ながら、これは data1 のすべてのレコードを返し、次の行を使用します。

data1 <-Inspections.mp[Inspections.mp$MonthInt == theMonth,]

次のエラーが発生します: bb[1, ] のエラー: 次元数が正しくありません

ただし、定数整数を使用するだけで必要なレコードを取得できますが、変数が必要です

library(maptools)
for(theMonth in 600: 0)
{
  Inspections.mp <- readShapeLines("InspDates2")
  counties.mp <- readShapePoly("Boundary")
  plot(counties.mp, axes=FALSE, border="gray")
  data1 <-Inspections.mp[Inspections.mp$MonthInt == 60,]
  lines(data1, col="blue", lwd=1)
}
4

1 に答える 1

0

ここでの問題は、null サブセットのようです。これは、try/catch ステートメントを使用することで回避されます。

library(maptools)

Inspections.mp <- readShapeLines("InspDates2")
counties.mp <- readShapePoly("Boundary")
for(theMonth in 600: 0)
{
  plot(counties.mp, axes=FALSE, border="gray")

  result <- tryCatch({
    data1 <-Inspections.mp[Inspections.mp$MonthInt == theMonth,]
    lines(data1, col="blue", lwd=1)
    },warning = function(war){
      print("WARNING")
    },error = function (err)
    {
      print("Error")
    }, finally = {
      print("Finally")
    })
}
于 2013-02-04T15:50:38.110 に答える