在R中使用if语句定义多个范围

在R中使用if语句定义多个范围,r,if-statement,R,If Statement,我有一个叫做districts的表,其中有一个叫做zone的列,其中存储了410个值,数字1-410 目前,R代码的结构如下: # add II data to the external matrix zoneNames <- districts$zone maxExternalZoneNum <- 99 #assumes externals first in zone numbering and are less than 99 vehicle[zoneNames > max

我有一个叫做districts的表,其中有一个叫做zone的列,其中存储了410个值,数字1-410

目前,R代码的结构如下:

# add II data to the external matrix
zoneNames <- districts$zone
maxExternalZoneNum <- 99 #assumes externals first in zone numbering and are less than 99
vehicle[zoneNames > maxExternalZoneNum, zoneNames > maxExternalZoneNum] <- get(paste(p, "vehicle", sep=""))[zoneNames > maxExternalZoneNum, zoneNames > maxExternalZoneNum]
assign(paste(p, "vehicle", sep=""),vehicle)
rm(vehicle)
#将II数据添加到外部矩阵
zoneNames MaxExternalZoneum]MaxExternalZoneum,zoneNames>MaxExternalZoneum]
分配(粘贴(p,“车辆”,sep=“”),车辆)
rm(车辆)
除非出于我的目的,99 MaxExternalZoneum不适用。我有1-30个外区号码加上另一个外区号码410

31-409是“内部”分区,不能重新编号。所以我必须将MaxExternalZoneum定义为一个值范围,1:30和410


我可以部署哪些方法来有效地处理MaxExternalZoneum中的更改,使其不会中断此代码的执行?

用简单的英语,您能告诉我们您在做什么吗?我不理解您的代码。度量--这是一个非常大而复杂的旅行需求模型的一部分。用简单的英语,你能告诉我们你在做什么吗?我不理解你的代码。指标——这是一个非常庞大而复杂的旅行需求模型的一部分。
(zoneI将包括这两个选项,以供将来参考。%in%运算符对非整数集不起作用。这可能会起作用,但为了澄清,它是什么“外部”和“内部”应该表示?内部分区=31-409,那么我会定义一个新的内部对象吗?这将用两个类别替换现有分区变量:外部(如果分区取值为1到30和410)或内部(如果分区取值为31到409)。若要创建新变量而不是替换现有区域变量,只需在代码左侧执行district$new即可。
(zoneI将包括这两个选项,以供将来参考。对于非整数的数字集,%in%运算符不起作用。这可能会起作用,但为了澄清,“外部”和“内部”是什么“应该表示?内部区域=31-409,那么我会定义一个新的内部对象吗?这将用两个类别替换现有的区域变量:外部(如果区域的值为1到30和410)或内部(如果区域的值为31到409)。若要创建新变量而不是替换现有区域变量,只需在代码左侧执行district$new即可。
district$zone<-with(district,ifelse((zone<=30|zone==410),"external","internal")
district$zone<-with(district,ifelse((zone %in% c(1:30,410)),"external","internal")