[R] Printing left-justified character strings

zListserv z||@t@erv @end|ng |rom gm@||@com
Wed Jun 6 01:49:10 CEST 2018


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 using 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 using 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 using 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.
>> 
> 




More information about the R-help mailing list