2014-09-06 50 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]