如何通过匹配部分字符串来子集R中的空间多边形?

如何通过匹配部分字符串来子集R中的空间多边形?,r,geospatial,string-matching,R,Geospatial,String Matching,我想把一个多边形形状文件(巴西亚马逊地区的森林砍伐)除以多年的森林砍伐。年份在字符串字段中,如“d2010_1”、“d2010_2”、“d2011_1”等。我想把它分为5年。我尝试了以下方法: d00a04 <- prodes[grepl("d2000",prodes@data$CLASS_NAME) || grepl("d2001",prodes@data$CLASS_NAME) || grepl("d2002",prodes@data$C

我想把一个多边形形状文件(巴西亚马逊地区的森林砍伐)除以多年的森林砍伐。年份在字符串字段中,如“d2010_1”、“d2010_2”、“d2011_1”等。我想把它分为5年。我尝试了以下方法:

d00a04 <- prodes[grepl("d2000",prodes@data$CLASS_NAME) ||
            grepl("d2001",prodes@data$CLASS_NAME) ||
            grepl("d2002",prodes@data$CLASS_NAME) ||
            grepl("d2003",prodes@data$CLASS_NAME) ||
            grepl("d2004",prodes@data$CLASS_NAME),]
anos <- sort(unique(prodes@data$CLASS_NAME))
anos00a04 <- anos[2:20]

d00a04
sapply(prodes@data,类)
CLASS\u NAME
是因子变量吗?我还认为您需要将
|
替换为
|
。是的,它是一个因子变量。是的,它与|一起工作!!非常感谢。因为R不会自动删除未使用的因子级别。你需要重构<代码>d00a04@data$CLASS\u名称不使用prodes@data$CLASS\u NAME,只需使用prodes$CLASS\u NAME即可
anos00a04 = c("d2000","d2001","d2002","d2003","d2004")
d00a04 <- subset(prodes,prodes@data$CLASS_NAME %in% anos00a04)
anos <- sort(unique(prodes@data$CLASS_NAME))
anos00a04 <- anos[2:20]