[R] Using str() in a function.

andrewH ahoerner at rprogress.org
Sat Jul 9 10:20:14 CEST 2011


Using str() in a function.

I am in the early phase of learning R, and I find I spend a lot of time
trying to figure out what is actually in objects I have created or read in
from a file.  I'm trying to make a simple little function to display a
couple of things about a object, let's say the summary() and the str(),
sequentially, preferably without a bunch of surplus lines between them.  I
have tried a large number of things; none do what I want. 

> GG<- c(1,2,3)
# This one ignores the str().
> testX <- function(X) {return(summary(X)); str(X)}
> testX(GG)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    1.0     1.5     2.0     2.0     2.5     3.0 

# So does this one.
> testX2 <- function(X) {return(summary(X)); return(str(X))}
> testX2(GG)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    1.0     1.5     2.0     2.0     2.5     3.0 

# On the other hand, this one ignores the summary()
> testX3 <- function(X) {summary(X); return(str(X))}
> testX3(GG)
 num [1:3] 1 2 3

# This one displays both, in reverse order, with a superfluous (to my
intentions) [[NULL]].
> testX4 <- function(X) {list(summary(X), (str(X)))}
> testX4(GG)
 num [1:3] 1 2 3
[[1]]
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    1.0     1.5     2.0     2.0     2.5     3.0 

[[2]]
NULL

# Now we are back to ignoring the str().
> testX5 <- function(X) {list(return(summary(X)), (str(X)))}
> testX5(GG)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    1.0     1.5     2.0     2.0     2.5     3.0 

# This does the same as testX4().
> testX6 <- function(X) {return(list(summary(X), (str(X))))}
> testX6(GG)
 num [1:3] 1 2 3
[[1]]
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    1.0     1.5     2.0     2.0     2.5     3.0 

[[2]]
NULL

I tried a bunch more, using the print command, etc., but nothng I tried
resulted in the output of summary() followed by the output of str(). And is
there really no way to assign the output of str() -- that is to say, the
output str() normally prints to the console -- to an object?  

I would be very greatful for any guidance you could offer.

Sincerely, Andrew

--
View this message in context: http://r.789695.n4.nabble.com/Using-str-in-a-function-tp3655785p3655785.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list