I didn't look at the names because I believe that would be incorrect if the row names were stored internally in the compact form.
See ?.set_row_names (hat tip, Tim Hesterberg who showed me this years ago) : 'row.names' can be stored internally in compact form. '.set_row_names(n)' generates that form for automatic row names of length 'n', to be assigned to 'attr(<a data frame>, "row.names")'. '.row_names_info' gives information on the internal form of the row names for a data frame: for details of what information see the argument 'type'. The function I wrote obviously doesn't work for 0 row or 0 column data.frames, you need to check for that. On Mon, Mar 31, 2014 at 6:12 PM, Gábor Csárdi <csardi.ga...@gmail.com> wrote: > I think it is actually better to check the length of the row names. In case > the data frame has zero columns. (FIXME, of course.) > > Gabor > > > On Mon, Mar 31, 2014 at 8:04 PM, Murray Stokely <mur...@stokely.org> wrote: >> >> The simplest case would be: >> >> int num_rows = Rf_length(VECTOR_ELT(dataframe, 0)); >> int num_columns = Rf_length(dataframe); >> >> There may be edge cases for which this doesn't work; would need to >> look into how the dim primitive is implemented to be sure. >> >> - Murray >> >> >> On Mon, Mar 31, 2014 at 4:40 PM, Sandip Nandi <sanna...@umail.iu.edu> >> wrote: >> > Hi , >> > >> > Is there any C API to the R API nrow of dataframe ? >> > >> > x<- data.frame() >> > n<- nrow(x) >> > print(n) >> > 0 >> > >> > >> > Example : >> > My C function which deals with data frame looks like and I don't to send >> > the number of rows of data frame .I want to detect it from the function >> > itself, my function take data frame as argument and do some on it. I >> > want >> > API equivalent to nrow. I tried Rf_nrows,Rf_ncols . No much help. >> > >> > SEXP writeRR(SEXP dataframe) { >> > >> > } >> > >> > >> > Any help is very appreciated. >> > >> > Thanks, >> > Sandip >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-devel@r-project.org mailing list >> > https://stat.ethz.ch/mailman/listinfo/r-devel >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel