我有一种情况,我有一个名为区的表,其中有一个名为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)
除了我的目的,99 maxExternalZoneNum不适用。我有1-30个外部区号和另一个外部区号410.
31-409是“内部”区域,不能重新编号。所以我必须将maxExternalZoneNum定义为一系列值,1:30和410。
我可以部署哪些方法来有效地处理maxExternalZoneNum中的更改,以便它不会破坏此代码的执行?
答案 0 :(得分:1)
district$zone<-with(district,ifelse((zone<=30|zone==410),"external","internal")
或者您可以按照Frank的建议使用%in%
:
district$zone<-with(district,ifelse((zone %in% c(1:30,410)),"external","internal")