我有两个数据集:

#> dput((h_NDVI))
structure(list(Date = structure(c(15235, 15236, 15237, 15238, 
15239, 15240, 15241, 15242, 15243, 15244, 15245, 15246, 15247, 
15248, 15249, 15250, 15251, 15252, 15253, 15254, 15255, 15256, 
15257, 15258, 15259, 15260, 15261, 15262, 15263, 15264, 15265, 
15266, 15267, 15268, 15269, 15270, 15271, 15272, 15273, 15274, 
15275, 15276, 15277, 15278, 15279, 15280, 15281, 15282, 15283, 
15284, 15285, 15286, 15287, 15288, 15289, 15290, 15291, 15292, 
15293, 15294, 15295, 15296, 15297, 15298, 15299, 15300, 15301, 
15302, 15303, 15304, 15305), class = "Date"), NDVI = c(NA, NA, 
0.294432928636906, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, 0.278673565052068, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, 0.352506101806382, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0.377174364841906, 
NA, NA, NA)), row.names = 160:230, class = "data.frame")

#> dput(head(r和om_h_NDVI,23))
structure(list(N = c(22L, 25L, 27L, 56L, 69L, 81L, 83L, 96L, 
100L, 106L, 124L, 138L, 139L, 150L, 153L, 162L, 171L, 174L, 181L, 
187L, 205L, 206L, 227L), Date = structure(c(15097, 15100, 15102, 
15131, 15144, 15156, 15158, 15171, 15175, 15181, 15199, 15213, 
15214, 15225, 15228, 15237, 15246, 15249, 15256, 15262, 15280, 
15281, 15302), class = "Date"), NDVI = c(NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0.2944329, NA, NA, NA, 
NA, NA, NA, 0.3771744)), row.names = c(98L, 91L, 23L, 79L, 163L, 
34L, 191L, 59L, 7L, 213L, 52L, 134L, 209L, 176L, 58L, 165L, 16L, 
92L, 171L, 28L, 164L, 137L, 3L), class = "data.frame")

A quick explanation of the exercise: I've chosen r和om points from h_NDVI 和 created the r和om_h_NDVI.

Now I want to replace all values of the NDVI column from h_NDVI with NA that have a coincident Date with r和om_h_NDVI (this includes the NA's which will remain NA).

推荐答案

我们可以按"Date"进行连接,并将匹配的连接分配给NA

> which(!is.na(h_NDVI$NDVI))
[1]  3 16 51 68
library(data.table)
setDT(h_NDVI)[random_h_NDVI, NDVI := NA_real_, on = .(Date)]
> which(!is.na(h_NDVI$NDVI))
[1] 16 51

或使用base R

h_NDVI$NDVI[h_NDVI$Date %in% random_h_NDVI$Date] <- NA_real_

R相关问答推荐

在R中查找每个组不同时间段的总天数

我想在R中总结一个巨大的数据框架,使我只需要唯一的lat、lon、Date(Year)和Maxium Value""""""""

使用strsplit()将向量操作为数据框

在R中使用数据集名称

R函数,用于生成伪随机二进制序列,其中同一数字在一行中不出现超过两次

在R中按行按列范围查找最大值的名称

QY数据的处理:如何定义QY因素的水平

从R中发出的咕噜声中的BUG?

将全局环境变量的名称分配给列表中的所有元素

如何将一个方阵分解成没有循环的立方体

层次树图的数据树

为什么函数toTitleCase不能处理english(1),而toupper可以?

访问数据帧中未定义的列时出现R错误

在ggplot2图表中通过端点连接点

使用dqur在不同变量上创建具有多个条件的变量

如何创建直方图与对齐的每月箱?

将字符变量出现次数不相等的字符框整形为pivot_wider,而不删除重复名称或嵌套字符变量

R中的交叉表

当y为负值时,无法使stat_cor正确定位到底部?

如何根据列名和行名求和矩阵的值?