| 167 | |
| 168 | |
| 169 | Rcpp::List buildDataFrame(LazyFrameT& m) { |
| 170 | Rcpp::List ans(m.size()); |
| 171 | ans.attr("class") = "data.frame"; |
| 172 | if(m.empty()) { return ans; } |
| 173 | |
| 174 | size_t nrows(Rf_length(m.begin()->second)); |
| 175 | Rcpp::IntegerVector rnms(nrows); std::iota(rnms.begin(), rnms.end(), 1); |
| 176 | ans.attr("row.names") = rnms; |
| 177 | |
| 178 | R_len_t i(0); |
| 179 | std::vector<std::string> colnames(m.size()); |
| 180 | for(const auto &v : m) { |
| 181 | colnames[i] = v.first; |
| 182 | ans[i] = v.second; |
| 183 | ++i; |
| 184 | } |
| 185 | ans.attr("names") = colnames; |
| 186 | |
| 187 | return ans; |
| 188 | } |
| 189 | |
| 190 | LazyFrameIteratorT assertColumnDefined(LazyFrameT& lazy_frame, BloombergLP::blpapi::Element& e, size_t n) { |
| 191 | LazyFrameIteratorT iter = lazy_frame.find(e.name().string()); |