2016-11-08 157 views
0

我的数据帧:使NA观察结果与观察在相同相邻列

 structure(list(make = c("land rover", "land rover", "land rover", 
    "land rover", "land rover", "land rover", "land rover", "land rover", 
    "land rover", "land rover"), model = c("freelander", "range", 
    "discovery", "freelander", "range", "discovery", "discovery", 
    "range", "discovery", "range"), body = c("freelander", "sport", 
    "discovery", "2", "evoque", "sport", "4x4", "range", "4", "sport" 
    )), .Names = c("make", "model", "body"), row.names = c(92L, 178L, 
    185L, 192L, 202L, 224L, 233L, 448L, 473L, 480L), class = "data.frame") 

我想NA列“体”相同的那些列“模式”观测那些观测。在这种情况下,这将是行1,3,8。 我尝试了以下功能,不给任何错误,也不会产生任何结果:如果你打电话给你的数据集的“测试”

RemovingNames <- function(df){ 
    for(i in 1:nrow(df)) 
    ifelse(identical (df[i,2], df[i,3]), df[i,3]<-NA, df[i,3]<-df[i,3]) 
} 
+2

你不需要一个'for'循环'df1 [,3] [df1 [,2] == df1 [,3]] < - NA' – akrun

+0

谢谢我过于复杂。会接受答案。 – Vasile

回答

1

,则:

test[test[,"model"] == test[, "body"], "body"] <- NA