Ваш первый пример эквивалентен print(mtcars, n=20)
- что тоже не получается.
Поскольку mtcars
является data.frame
, ваш вызов отправляется на print.data.frame
. И, как вам скажет args(print.data.frame)
, в нем нет аргумента n=
.
Короче говоря, вы запутались между отправкой Speci c (я предполагаю print.tbl
) с более общим подходом c.
Так что лучшим заголовком для вопроса может быть «Почему аргумент есть только у метода печати для столбцов» - для общего использования мы обычно просто вызываем head
, как в
R> head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
R>
который, конечно, также работает в конвейерном выражении.