我在R中写了一个函数 - 名为“filtre”:它需要一个数据帧,并且对于每一行它说是否应该进入bin 1或2.最后,我们有两个数据帧总计为原始输入,分别对应于在箱1或2中抛出的所有行。这两组箱1和2被称为filtre1和filtre2。为方便起见,计算了filtre1和filtre2的值,但没有返回,因为它是一个更大的过程中的中介(加上它们是相当大的数据帧)。我有以下问题:
(i)当我后来想要使用filtre1(或者filtre2)时,他们根本就没有出现......就好像他们的价值被卡在了这个功能中,并且不会在其他地方被识别出来 - 这将迫使我每次我觉得使用它时复制整个功能 - 相当痛苦和沉重。
我怀疑这是一件相当简单的事情,但我确实在网上搜索并没有找到真正的答案(我不确定最好的关键词)。任何不便敬请谅解。 Thxs / g。
答案 0 :(得分: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,]