Duncan et al I tried to redefine print.data.frame the way you suggested, but I misplaced the ellipsis by putting it at the end of the function definition instead of immediately following the name of the data frame. Works now. Thanks!> On 2018-06-05, at 12:39, Duncan Murdoch <murdoch.duncan at gmail.com> wrote: > > On 05/06/2018 10:24 AM, zListserv wrote: >> Many (most?) R functions print character strings and factor labels right-justified. > > Could you be more specific? I see character strings left justified, e.g. x <- rep(c("a", "ab", "abc"), 7) prints as > > [1] "a" "ab" "abc" "a" "ab" "abc" "a" > [8] "ab" "abc" "a" "ab" "abc" "a" "ab" > [15] "abc" "a" "ab" "abc" "a" "ab" "abc" > > In a data frame, I do see it right justified: > > x > 1 a > 2 ab > 3 abc > etc. > > It is easy to change the printing of data frames: > > print.data.frame <- function(x, ..., right = FALSE) { > base::print.data.frame(x, ..., right = right) > } > > > data.frame(x) > x > 1 a > 2 ab > 3 abc > > Are there other examples you're seeing? > > Duncan Murdoch > >> print accepts right=FALSE to print character strings left-justified, but neither head nor tail seem to do so, and even print is a little inconsistent depending on whether it's done while knitting. >> Is there a way to set left-justification globally so every routine will print character strings left-justified? >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >
p.s. It seems to work for print command, but not for head, tail, or printing a
data frame, per below. Any way fix the others so they all left-justify?
R> x <- as.data.frame(rep(c("a", "ab",
"abc"), 7))
R> print(x)
rep(c("a", "ab", "abc"), 7)
a
ab
abc
a
ab
abc
a
ab
abc
a
ab
abc
a
ab
abc
a
ab
abc
a
ab
abc
R> head(x)
rep(c("a", "ab", "abc"), 7)
1 a
2 ab
3 abc
4 a
5 ab
6 abc
R> x
rep(c("a", "ab", "abc"), 7)
1 a
2 ab
3 abc
4 a
5 ab
6 abc
7 a
8 ab
9 abc
10 a
11 ab
12 abc
13 a
14 ab
15 abc
16 a
17 ab
18 abc
19 a
20 ab
21 abc
> On 2018-06-05, at 14:49, zListserv <zlistserv at gmail.com> wrote:
>
> Duncan et al
>
> I tried to redefine print.data.frame the way you suggested, but I misplaced
the ellipsis by putting it at the end of the function definition instead of
immediately following the name of the data frame.
>
> Works now.
>
> Thanks!
>
>
>> On 2018-06-05, at 12:39, Duncan Murdoch <murdoch.duncan at
gmail.com> wrote:
>>
>> On 05/06/2018 10:24 AM, zListserv wrote:
>>> Many (most?) R functions print character strings and factor labels
right-justified.
>>
>> Could you be more specific? I see character strings left justified,
e.g. x <- rep(c("a", "ab", "abc"), 7) prints as
>>
>> [1] "a" "ab" "abc" "a"
"ab" "abc" "a"
>> [8] "ab" "abc" "a" "ab"
"abc" "a" "ab"
>> [15] "abc" "a" "ab" "abc"
"a" "ab" "abc"
>>
>> In a data frame, I do see it right justified:
>>
>> x
>> 1 a
>> 2 ab
>> 3 abc
>> etc.
>>
>> It is easy to change the printing of data frames:
>>
>> print.data.frame <- function(x, ..., right = FALSE) {
>> base::print.data.frame(x, ..., right = right)
>> }
>>
>>> data.frame(x)
>> x
>> 1 a
>> 2 ab
>> 3 abc
>>
>> Are there other examples you're seeing?
>>
>> Duncan Murdoch
>>
>>> print accepts right=FALSE to print character strings
left-justified, but neither head nor tail seem to do so, and even print is a
little inconsistent depending on whether it's done while knitting.
>>> Is there a way to set left-justification globally so every routine
will print character strings left-justified?
>>> ______________________________________________
>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more,
see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>
>
On 05/06/2018 7:49 PM, zListserv wrote:> p.s. It seems to work for print command, but not for head, tail, or printing a data frame, per below. Any way fix the others so they all left-justify?You haven't shown us what you did. Duncan Murdoch