[Rd] C API to get numrow of data frame

Murray Stokely murray at stokely.org
Tue Apr 1 03:27:53 CEST 2014


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.gabor at 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 <murray at 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 <sannandi at 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 at r-project.org mailing list
>> > https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>



More information about the R-devel mailing list