我试图在我写的这个函数的帮助下,为具有匹配变量的案例(案例ID)完全删除数据集中的行:
del_row_func <- function(x){
for(i in 1:length(x$FALL_ID)){
for(j in 1:length(x$FALL_ID)){
if(x$FALL_ID[i] == x$FALL_ID[j] & i != j){
x[-i, ]
}
}
}
}
任何人都有一个想法,为什么它不起作用?
答案 0 :(得分:2)
您的代码无法正常工作的原因是您没有修改或返回x
。但是,有一种更好的方法可以删除具有重复ID的所有行:
dat = data.frame(FALL_ID = c(1, 2, 2, 3), y = 1:4)
dat
# FALL_ID y
# 1 1 1
# 2 2 2
# 3 2 3
# 4 3 4
dat[!duplicated(dat$FALL_ID) & !duplicated(dat$FALL_ID, fromLast=T),]
# FALL_ID y
# 1 1 1
# 4 3 4