本文整理汇总了C++中LazyDots::single_env方法的典型用法代码示例。如果您正苦于以下问题:C++ LazyDots::single_env方法的具体用法?C++ LazyDots::single_env怎么用?C++ LazyDots::single_env使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LazyDots
的用法示例。
在下文中一共展示了LazyDots::single_env方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: filter_grouped
DataFrame filter_grouped( const Data& gdf, const LazyDots& dots){
if( dots.single_env() ){
return filter_grouped_single_env<Data, Subsets>(gdf, dots) ;
} else {
return filter_grouped_multiple_env<Data, Subsets>(gdf, dots) ;
}
}
示例2: filter_grouped
DataFrame filter_grouped( const GroupedDataFrame& gdf, const LazyDots& dots){
if( dots.single_env() ){
return filter_grouped_single_env(gdf, dots) ;
} else {
return filter_grouped_multiple_env(gdf, dots) ;
}
}
示例3: filter_not_grouped
DataFrame filter_not_grouped( DataFrame df, const LazyDots& dots){
CharacterVector names = df.names() ;
SymbolSet set ;
for( int i=0; i<names.size(); i++){
set.insert( Rf_installChar( names[i] ) ) ;
}
if( dots.single_env() ){
Environment env = dots[0].env() ;
// a, b, c -> a & b & c
Shield<SEXP> call( and_calls( dots, set, env ) ) ;
// replace the symbols that are in the data frame by vectors from the data frame
// and evaluate the expression
CallProxy proxy( (SEXP)call, df, env ) ;
LogicalVector test = check_filter_logical_result(proxy.eval()) ;
if( test.size() == 1){
if( test[0] == TRUE ){
return df ;
} else {
return empty_subset(df, df.names(), classes_not_grouped()) ;
}
} else {
check_filter_result(test, df.nrows());
return subset(df, test, classes_not_grouped() ) ;
}
} else {
int nargs = dots.size() ;
Call call(dots[0].expr());
CallProxy first_proxy(call, df, dots[0].env() ) ;
LogicalVector test = check_filter_logical_result(first_proxy.eval()) ;
if( test.size() == 1 ) {
if( !test[0] ){
return empty_subset(df, df.names(), classes_not_grouped() ) ;
}
} else {
check_filter_result(test, df.nrows());
}
for( int i=1; i<nargs; i++){
Rcpp::checkUserInterrupt() ;
Call call( dots[i].expr() ) ;
CallProxy proxy(call, df, dots[i].env() ) ;
LogicalVector test2 = check_filter_logical_result(proxy.eval()) ;
if( combine_and(test, test2) ){
return empty_subset(df, df.names(), classes_not_grouped() ) ;
}
}
DataFrame res = subset( df, test, classes_not_grouped() ) ;
return res ;
}
}