Skip to content

Small bug in the documentation of `[.data.frame`

4 messages · Rui Barradas, Duncan Murdoch, Martin Maechler

#
Hello,

R 4.0.3 on Ubuntu 20.10, session info at end.

Isn't the default value of argument drop missing in

?`[.data.frame`

Usage:

      ## S3 method for class 'data.frame'
      x[i, j, drop = ]


I had the impression that it was TRUE (it is when running the function, 
I'm talking about the docs).



sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.1 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0

locale:
  [1] LC_CTYPE=pt_PT.UTF-8       LC_NUMERIC=C
  [3] LC_TIME=pt_PT.UTF-8        LC_COLLATE=pt_PT.UTF-8
  [5] LC_MONETARY=pt_PT.UTF-8    LC_MESSAGES=pt_PT.UTF-8
  [7] LC_PAPER=pt_PT.UTF-8       LC_NAME=C
  [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=pt_PT.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] compiler_4.0.3 tools_4.0.3


Happy holidays,

Rui Barradas
#
On 29/12/2020 8:29 a.m., Rui Barradas wrote:
No, you can see it if you print `[.data.frame`:

 > `[.data.frame`
function (x, i, j, drop = if (missing(i)) TRUE else length(cols) ==
     1)

So if you ask for specific rows and your dataframe has more than one 
column, it defaults to FALSE.

I think the Rd checks allow you to leave out defaults, but don't allow 
you to state them incorrectly, so that's probably why it is left as 
blank in the Usage section, and explained in the Arguments section.

Duncan Murdoch
#

        
> On 29/12/2020 8:29 a.m., Rui Barradas wrote:
>> Hello,
    >> 
    >> R 4.0.3 on Ubuntu 20.10, session info at end.
    >> 
    >> Isn't the default value of argument drop missing in
    >> 
    >> ?`[.data.frame`
    >> 
    >> Usage:
    >> 
    >> ## S3 method for class 'data.frame'
    >> x[i, j, drop = ]
    >> 
    >> 
    >> I had the impression that it was TRUE (it is when running the function,
    >> I'm talking about the docs).

    > No, you can see it if you print `[.data.frame`:

    >> `[.data.frame`
    > function (x, i, j, drop = if (missing(i)) TRUE else length(cols) ==
    > 1)

    > So if you ask for specific rows and your dataframe has more than one 
    > column, it defaults to FALSE.

    > I think the Rd checks allow you to leave out defaults, but don't allow 
    > you to state them incorrectly, so that's probably why it is left as 
    > blank in the Usage section, and explained in the Arguments section.

    > Duncan Murdoch

Yes, indeed, Duncan,  it is as you think (above).

It is "official" in the sense that we've used this for a long
time in order to keep the 'Usage' section cleaner, when some
defaults are sophisticated, and a help page reader should rather
read the corresponding argument description.

Martin


    >> sessionInfo()
    >> R version 4.0.3 (2020-10-10)
    >> Platform: x86_64-pc-linux-gnu (64-bit)
    >> Running under: Ubuntu 20.04.1 LTS
    >> 
    >> Matrix products: default
    >> BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
    >> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
    >> 
    >> locale:
    >> [1] LC_CTYPE=pt_PT.UTF-8       LC_NUMERIC=C
    >> [3] LC_TIME=pt_PT.UTF-8        LC_COLLATE=pt_PT.UTF-8
    >> [5] LC_MONETARY=pt_PT.UTF-8    LC_MESSAGES=pt_PT.UTF-8
    >> [7] LC_PAPER=pt_PT.UTF-8       LC_NAME=C
    >> [9] LC_ADDRESS=C               LC_TELEPHONE=C
    >> [11] LC_MEASUREMENT=pt_PT.UTF-8 LC_IDENTIFICATION=C
    >> 
    >> attached base packages:
    >> [1] stats     graphics  grDevices utils     datasets  methods   base
    >> 
    >> loaded via a namespace (and not attached):
    >> [1] compiler_4.0.3 tools_4.0.3
    >> 
    >> 
    >> Happy holidays,
    >> 
    >> Rui Barradas
    >> 
    >> ______________________________________________
    >> 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
#
Hello,

Thank you both, Duncan and Martin, for the quick and clear answer.
I hadn't considered printing `[.data.frame`, which is in fact very 
useful, but I had read the Arguments section. What I didn't realize was 
that it was the answer to the question. Sorry for the noise.

Rui Barradas

?s 13:51 de 29/12/20, Martin Maechler escreveu: