对于R中的循环-删除由一个变量匹配的所有行

卡希拉

我试图借助我编写的此函数,针对具有匹配变量(案例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, ]
      }
    }
  }  
}

任何人都有一个主意,为什么它不起作用?

乔斯利伯

您的代码不起作用的原因是您没有在修改或返回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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何删除组中的所有行,除了最新的一个?

对于R中具有子集的循环

创建由R中的另一个变量分组的变量的所有值的列表

对于循环删除所有行

对于R中函数内的嵌套变量的循环

使用SUMIFS对与另一条件匹配的列中与一个条件匹配的所有行求和

在R中,我如何向下填充与一个变量匹配但与另一变量不匹配的所有行

根据行中的另一个变量删除具有相同值的行

如果列中至少有一个特定值,则删除所有行

删除R中至少包含一个负值的所有行

从自身和该列中的所有行中减去该列中的第一行,对于R中除一个以外的所有列

对于循环分配,溢出到另一个变量中

从变量值中删除直到最后一个“ /”(包括最后一个“ /”)的所有内容

删除列中的值与另一个数据集中的列中的值不匹配的所有行

对于循环,仅返回R中的一个输出

从一个特定的列中删除特定行号以下的所有行

如何删除行中只有一个值的所有行?

从另一个文件中删除文件中与文本不匹配的所有行

Perl脚本使用另一个文件从一个管道分隔的文件中删除行具有一个匹配的列

对于每种变量类型,将所有行除以一个参考行

使用sed,如何删除与一组模式中的任何一个匹配的所有初始行?

删除 CSV 文件中的所有行,而在另一个 CSV 文件中没有对应/匹配的时间戳

如何从矩阵中删除与另一个向量中的值匹配的所有行?

删除数据框中从第一个匹配到最后一行的所有行

awk 匹配一个 TSV 列并用 bash 中的前缀替换所有行

SQL:选择与另一个表中的内容匹配的所有行

查找另一个工作表匹配键中的所有行

编写一个包含序列中除一个变量之外的所有变量的循环

如何从文件中删除第一个之后的所有行项目