0

我在 R 中编写了一个函数 - 称为“过滤器”:它需要一个数据帧,并且对于每一行它都说明它是否应该进入 bin 1 或 2。最后,我们有两个数据帧总结为原始输入, 并分别对应于 bin 1 或 bin 2 中抛出的所有行。这两组 bin 1 和 2 称为 filtre1 和 filtre2。为方便起见,计算了 filtre1 和 filtre2 的值但不返回,因为它是更大过程中的中间事物(而且它们是相当大的数据框)。我有以下问题:

(i) 当我后来想要使用 filtre1(或 filtre2)时,它们根本不会出现......就像它们的值被卡在函数中,并且不会在其他地方被识别 - 这将迫使我复制每次我想使用它时都会使用整个功能 - 非常痛苦和沉重。

我怀疑这是一件相当简单的事情,但我确实在网上搜索并没有真正找到答案(我不确定最佳关键词)。任何不便敬请谅解。谢谢/克。

4

1 回答 1

1

由于您没有提供适当的示例,因此很难知道实现您想要的最佳方式,但我会尝试一下。如果您的变量 filtre1 和 filtre2 在您的函数内部定义并且您不返回它们,那么它们当然不会出现在您的环境中。但是您可以只返回分类并在之后制作 filtre1 和 filtre2 :

#example data
df<-data.frame(id=1:20,x=sample(1:20,20,replace=TRUE))

filtre<-function(df){
   #example function, this could of course be done by bins<-df$x<10
  bins<-numeric(nrow(df))
  for(i in 1:nrow(df))
    if(df$x<10) 
      bins[i]<-1
  return(bins)
}

bins<-filtre(df)

filtre1<-df[bins==1,]
filtre2<-df[bins==0,]
于 2013-03-10T05:47:18.227 回答