2014-09-06 51 views
2

我的初步数据:删除一个值,如果它不是在另一列载,R中

From <- c(1,2,3,4,5,6,7,8) 
To <- c(NA,1,2,13,2,NA,6,10) 
Data <- data.frame(From,To) 

我想改变“要”到“NA”的值,如果行导致不存在“从”。 最终数据应该看起来像这样。

From <- c(1,2,3,4,5,6,7,8) 
To <- c(NA,1,2,NA,2,NA,6,NA) 
Data <- data.frame(From,To) 

回答

4

这里有一些方法

Data$To[!Data$To %in% Data$From] <- NA 
Data$To <- ifelse(Data$To %in% Data$From, Data$To, NA) 
Data <- within(Data, To[!To %in% From] <- NA) 
Data <- transform(Data, To = ifelse(To %in% From, To, NA)) 
4

使用data.table

library(data.table) 
setDT(Data)[!To %in% From, To:= NA]