[R] ncol() vs. length() on data.frames
Prof. Dr. Matthias Kohl
M@tth|@@@Koh| @end|ng |rom @t@m@t@@de
Tue Mar 31 16:21:42 CEST 2020
if I enter ncol in the console, I get
indicating that function dim is called. Function dim has a method for
data.frame; see methods("dim").
The dim-method for data.frame is
c(.row_names_info(x, 2L), length(x))
Hence, it calls length on the provided data.frame. In addition, some
"magic" with .row_names_info is performed, where
function (x, type = 1L)
Am 31.03.20 um 16:10 schrieb Ivan Calandra:
> Thanks Ivan for the answer.
> So it confirms my first thought that these two functions are equivalent
> when applied to a "simple" data.frame.
> The reason I was asking is because I have gotten used to use length() in
> my scripts. It works perfectly and I understand it easily. But to be
> honest, ncol() is more intuitive to most users (especially the novice)
> so I was thinking about switching to using this function instead (all my
> data.frames are created from read.csv() or similar functions so there
> should not be any issue). But before doing that, I want to be sure that
> it is not going to create unexpected results.
> Thank you,
> Dr. Ivan Calandra
> TraCEr, laboratory for Traceology and Controlled Experiments
> MONREPOS Archaeological Research Centre and
> Museum for Human Behavioural Evolution
> Schloss Monrepos
> 56567 Neuwied, Germany
> +49 (0) 2631 9772-243
> On 31/03/2020 16:00, Ivan Krylov wrote:
>> On Tue, 31 Mar 2020 14:47:54 +0200
>> Ivan Calandra <calandra using rgzm.de> wrote:
>>> On a simple data.frame (i.e. each element is a vector), ncol() and
>>> length() will give the same result.
>>> Are they just equivalent on such objects, or are they differences in
>>> some cases?
>> I am not aware of any exceptions to ncol(dataframe)==length(dataframe)
>> (in fact, ncol(x) is dim(x)[2L] and ?dim says that dim(dataframe)
>> returns c(length(attr(dataframe, 'row.names')), length(dataframe))), but
>> watch out for AsIs columns which can have columns of their own:
>> x <- data.frame(I(volcano))
>> #  87 1
>> #  1
>> #  87 61
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
Prof. Dr. Matthias Kohl
More information about the R-help