[R] Linebreaks in cat() functions that call other variables?
    arun 
    smartpink111 at yahoo.com
       
    Wed May 22 23:24:51 CEST 2013
    
    
  
HI,
Try:
lab2<- function(var1,var2,data1){
 a<- anova(lm(var2~var1,data=data1))
cat("df(between) is",a[1,1],"\n")
  cat("df(within) is", a[2,1],"\n")
  cat("ss(between) is", a[1,2],"\n")
  cat("ss(within) is", a[2,2],"\n")
 }
#or
lab3<- function(var1,var2,data1){
 a<- anova(lm(var2~var1,data=data1))
cat(paste(paste("df(between) is",a1[1,1]),paste("df(within) is",a1[2,1]),paste("ss(between) is",a1[1,2]),paste("ss(within) is", a1[2,2]),sep="\n"))
 }
set.seed(28)
 dat1<- data.frame(Val=c(rnorm(10,25),rnorm(10,20),rnorm(10,22.5)),Group=rep(1:3,each=10))
dat1$Group<- factor(dat1$Group)
lab3(dat1$Group,dat1$Val,dat1)
#df(between) is 2
#df(within) is 27
#ss(between) is 109.581925181783
#ss(within) is 27.5035727619943> 
lab2(dat1$Group,dat1$Val,dat1)
#df(between) is 2 
#df(within) is 27 
#ss(between) is 109.5819 
#ss(within) is 27.50357 
A.K.
Hi everyone, 
I'm having some difficulty getting the linebreaks I want with the cat() function. 
I currently have the following function: 
lab1<-function(iv,dv){ 
  a<-anova(lm(dv~iv)) 
  cat("df(between) is",a[1,1]) 
  cat("df(within) is", a[2,1]) 
  cat("ss(between) is", a[1,2]) 
  cat("ss(within) is", a[2,2]) 
} 
And I want my output to be: 
df(between) is 4 
df(within) is 45 
ss(between) is 232 
ss(within) is 400 
but instead it prints: 
df(between) is 4df(within) is 45ss(between) is 232ss(within) is 400 
I have seen other people ask about this issue, but only in 
the context of character strings. I understand that if i wanted the 
output: 
Happy birthday 
to you 
the correct input would be 
>cat("Happy birthday\ntoyou") 
However applying the same logic to my string returns an error: 
> cat("df(between) is",a[1,1],\n"df(within) is", a[2,1]) 
Error: unexpected input in "cat("df(between) is",a[1,1],\" 
> cat("df(between) is",a[1,1]\n"df(within) is", a[2,1]) 
Error: unexpected input in "cat("df(between) is",a[1,1]\" 
Adding the command 'sep="\n"' to the end of each cat() returns: 
df(between) is 
4 
df(within) is 
45 
ss(between) is 
232 
ss(within) is 
400 
which is not quite as ugly, but I would still prefer the 4 line format I posted at the beginning. 
Can anyone help?
    
    
More information about the R-help
mailing list