R 不在其他数据集中的子集值

R 不在其他数据集中的子集值,r,data.table,subset,R,Data.table,Subset,我有数据集1,每个列中都有一些缺失值,数据集2(维度相同),但缺失值是插补的 我想对dataset2中的插补值进行子集,这些插补值在dataset1中为NA。我的原始数据中没有NA标志 我正在使用R Studio: #Example data.org <- as.data.frame( cbind(WT=c(NA,20,55,NA,25), HT= c(55,NA,NA,25,30), CBC=c(NA,10,20,NA,50) ) ) data.imp <- as.data.fra

我有数据集1,每个列中都有一些缺失值,数据集2(维度相同),但缺失值是插补的

我想对dataset2中的插补值进行子集,这些插补值在dataset1中为NA。我的原始数据中没有NA标志

我正在使用R Studio:

#Example
data.org <- as.data.frame( cbind(WT=c(NA,20,55,NA,25), HT= c(55,NA,NA,25,30), CBC=c(NA,10,20,NA,50) ) )
data.imp <- as.data.frame( cbind(WT=c(10,20,55,25,25), HT= c(55,30,55,25,30), CBC=c(15,10,20,40,50) ) )

#output
data.imp.WT <- as.data.frame(cbind(WT=c(10,25)))
data.imp.HT <- as.data.frame(cbind(HT=c(30,55)))
data.imp.CBC <- as.data.frame(cbind(CBC=c(15,40)))
#示例

data.org以下给出了缺失的值:

data.imp[is.na(data.org)]
#[1] 10 25 30 55 15 40
要按列显示这些值,我们可以使用
Map

Map(function(x, y) y[is.na(x)], data.org, data.imp)

#$WT
#[1] 10 25

#$HT
#[1] 30 55

#$CBC
#[1] 15 40

我需要为每个变量设置一个数据帧结构如果您将上面的输出放在
数据中,您可以使用
堆栈(数据)
将输出放在一个数据帧中,或者
列表2env(数据,.GlobalEnv)
将它们放在单独的数据帧中。我希望它们放在一个数据帧中。Stack(data)在本例中起作用,但当我将其应用于我正在处理的实际数据时,我得到了以下错误:
在Stack.default(Map(function(x,y)y[is.na(x)],data.org,data.imp):非向量元素将被忽略
并得到2个变量的0个值这
映射(function(x,y)y[is.na(x)],data.org,data.imp)
工作正常,但不在堆栈内部。你知道为什么吗?