R Null приводит к подмножеству данных
В 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)
}
1 ответ
Решение
Проблема здесь, кажется, нулевое подмножество. Этого можно избежать, используя оператор 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")
})
}