当前位置: 首页>>代码示例>>C++>>正文


C++ LazyDots::single_env方法代码示例

本文整理汇总了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) ;
    }
}
开发者ID:regine-adhoc,项目名称:dplyr,代码行数:7,代码来源:filter.cpp

示例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) ;
    }
}
开发者ID:kbroman,项目名称:dplyr,代码行数:7,代码来源:filter.cpp

示例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 ;
    }
}
开发者ID:regine-adhoc,项目名称:dplyr,代码行数:55,代码来源:filter.cpp


注:本文中的LazyDots::single_env方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。