我在使用dplyr的tbl_df,以及常规的data.frame时遇到了困难。我有一个大的tbl_df(500x30K),需要筛选它。
所以我想做的是:
filter(my.tbl_df, row1>0, row10<0)
这将类似于
df[df$row1>0 & df$row10<0,]
非常好。但我需要在运行时动态构建筛选功能,因此我需要通过一个或多个变量访问DF/tbl_df列。
我尝试了以下内容:
var=c("row1","row10")
op=c(">","<")
val=c(0,0)
filter(my.tbl_df, eval(parse(text=paste(var,op,val,sep="")))
这给了我一个错误:与 LGLSXP 不兼容。这似乎根深蒂固地存在于 Cpp 代码中。
如果您有任何提示,我将不胜感激。同时,指出“字符串转环境变量”转换的错误也会很有帮助,因为我相信我的处理方式是错误的。
最好的祝福,
Mario