基于random_h_NDVI的日期将h_NDVI的NDVI列值替换为NA
解决方案
要实现将h_NDVI中与random_h_NDVI日期重合的NDVI值替换为NA(原有NA保持不变),可以用以下两种常用方法:
基础R方法
直接通过日期匹配完成赋值,操作直观易懂:
# 提取random_h_NDVI中的所有目标日期 target_dates <- random_h_NDVI$Date # 匹配日期并将对应NDVI值设为NA h_NDVI$NDVI[h_NDVI$Date %in% target_dates] <- NA
dplyr方法(tidyverse风格)
如果习惯使用tidyverse工具链,mutate结合if_else可以更简洁地完成操作:
library(dplyr) h_NDVI <- h_NDVI %>% mutate(NDVI = if_else(Date %in% random_h_NDVI$Date, NA_real_, NDVI))
效果说明
执行后,h_NDVI中所有出现在random_h_NDVI$Date里的日期对应的NDVI值都会被替换为NA——原有NA值因赋值NA后仍保持NA,完全符合需求。比如原h_NDVI中Date = "2011-04-26"(对应数值15237)的NDVI值会从0.294...变为NA,Date = "2011-07-01"(对应数值15302)的NDVI值会从0.377...变为NA。
内容的提问来源于stack exchange,提问作者Cláudio Siva
相关产品推荐
相关产品推荐

