R 如何处理;参数';无与伦比假';“还没有使用吗?”;?

R 如何处理;参数';无与伦比假';“还没有使用吗?”;?,r,dataframe,R,Dataframe,我想检查data.frame()中的一行是否与现有行重复。正如已经指出的,一种方法可能是使用复制函数。但是,如果使用该函数,则会出现以下错误: Error: argument 'incomparables != FALSE' is not used (yet) 在一封相当老的邮件中,有人指出这实际上是R中的一个bug(更多信息请参阅)。我的data.frame()如下所示: data.frame(val1=int,val2=int,val3=int,val4=float); 我想知道问题到底

我想检查data.frame()中的一行是否与现有行重复。正如已经指出的,一种方法可能是使用复制函数。但是,如果使用该函数,则会出现以下错误:

Error: argument 'incomparables != FALSE' is not used (yet)
在一封相当老的邮件中,有人指出这实际上是R中的一个bug(更多信息请参阅)。我的data.frame()如下所示:

data.frame(val1=int,val2=int,val3=int,val4=float);
我想知道问题到底是什么,因为我的data.frame中似乎没有“NA”值,如

?duplicate
指出。这可能是一个非常愚蠢的问题,但我对R很陌生,很高兴能得到关于这个问题的任何提示

提前感谢,, 迈克尔

注:我已经提供了一个建议的例子

table <- NULL;

foo <- function(n, d, nh, v){
  newEntry <- data.frame(node_i=n, node_j=nh, dst=d, phi=v);

  if(length(table != 0)){
    if(!duplicated(table, newEntry)){
      add(n, nh, d, v);
    }else{
      print("it is a duplicate!")    
    }
  }else{
    add(n, nh, d, v);
  }
}

add <- function(n, d, nh, v){
  rbind(table, data.frame(node_i=n, node_j=nh, dst=d, phi=v)) ->> table;
}

bar <- function(){
  foo(23,42,5,4.0);
  print(table);
  foo(22,42,5,4.0);  
  print(table);
  foo(23,42,5,4.0);
  print(table);
}

表如果用
plyr
中的
match_df
替换
duplicated
函数,则问题应得到解决

library(plyr) # for match_df
table <- NULL;

foo <- function(n, d, nh, v){
  newEntry <- data.frame(node_i=n, node_j=nh, dst=d, phi=v);

  if(length(table != 0)){
    if(nrow(plyr::match_df(table, newEntry))){
      add(n, nh, d, v);
    }else{
      print("it is a duplicate!")    
    }
  }else{
    add(n, nh, d, v);
  }
}

add <- function(n, d, nh, v){
  rbind(table, data.frame(node_i=n, node_j=nh, dst=d, phi=v)) ->> table;
}

bar <- function(){
  foo(23,42,5,4.0);
  print(table);
  foo(22,42,5,4.0);  
  print(table);
  foo(23,42,5,4.0);
  print(table);
}

您能否使用
dput
给出您的数据样本,并显示您迄今为止尝试过的代码?作为旁白,我个人不会使用
->
引用全局表来构建表。使用这样一个全局变量会使跟踪程序流程变得更加困难。此外,如果此代码与其他代码集成,则可能会产生副作用,例如,如果其他代码也尝试更改表。同时,使用rbind扩展这样一个表可能会非常慢。那么,该代码将不会在另一个R程序中使用。但是,我想知道您推荐什么样的数据结构(在速度方面)?
> bar()
node_i node_j dst phi
1     23     42   5   4
Matching on: node_i, node_j, dst, phi
[1] "it is a duplicate!"
node_i node_j dst phi
1     23     42   5   4
Matching on: node_i, node_j, dst, phi
[1] "it is a duplicate!"
node_i node_j dst phi
1     23     42   5   4
> table
node_i node_j dst phi
1     23     42   5   4