Farrel Buchinsky wrote: > "Uwe Ligges" <[EMAIL PROTECTED]> wrote in message > news:[EMAIL PROTECTED] > >>Simply speaking, the last value of a function is returned. You can also >>explicitly call return(). You have to assign the value to a new variable >>when you call the function. Example: > > > I read your explanation and I half get it. However half getting it does not > help me when I am wanting to split apart a result that has multiple > components > I am using dgc.genetics from David Clayton but I think a similar thing would > happen if one were doing any analysis whose output was multiple lines of > text. For instance the output from a two sample t-test. > For example: How would one do multiple test and send the output to a > dataframe where every row was another instance of the test and each row > would have a column for the t value, another column for the df, another > column for the p-value, another column for the lower limit of the 95% CI, > another column for the upper limit of the CI and so on. > > My preference is that you send me to website where this is explained such as > the r-wiki.(Looked for it there and could not find it) > > Here is my example. > >>tdt(Genotype.4766200) > > Transmission/disequilibrium test > Data: Genotype.4766200 > > Untransmitted allele frequencies, informative transmissions > and exact P-values > > Allele Frequency Transmitted Untransmitted P-value > 2 0.1311 9 4 > 0.267 > Warning message: > 1 misinheritances in: phase.resolve(g.cs, g.mr, g.fr, as.allele.pair = TRUE, > allow.ambiguous = (parent == > > I can unclass it and get > >>unclass(tdt(Genotype.4766200)) > > $statistic > Chi-squared test > 1.923077 > > $parameter > DF > 1 > > $exact > [1] TRUE > > $p.value > Chi-squared test 1 2 > 0.1655179 0.2668457 0.2668457 > > $method > [1] "Transmission/disequilibrium test" > > $data.name > [1] "Genotype.4766200" > > $allele.frequencies > Allele frequency > 1 2 > 0.8688525 0.1311475 > > $informative.transmissions > Transmitted Untransmitted > 1 4 9 > 2 9 4 > > Warning message: > 1 misinheritances in: phase.resolve(g.cs, g.mr, g.fr, as.allele.pair = TRUE, > allow.ambiguous = (parent == > > > So as you can see, even the different components of the output are still not > single values. > How does one strip this to single numbers? > I will be moving to lapply or sapply to run the analysis repeatedly over > 6000 times. There will be way too much output to eyeball. > > Another correspondent came up with a complicated way of sending printed > output to a file and then using various string pattern recognition > functions, to make R determine what was what. But that seems awfully > inelegant - turning a computer into a human reader with computer processing > speed.
No, simply access the components you want to get and put then into a data.frame. Let's make a nonsense lm() example that is reproducible for me: result <- lapply(1:10, function(i){ x <- rnorm(10) y <- rnorm(10) lm(y~x) }) result Now you want to get the coefficients by applying the indexing function "[[" with argument "coefficients" (names of the corresposning element of the returned list) to the object result: sapply(result, "[[", "coefficients") (in this particular case one would take the extractor function coefficients() instead, but this one was for demonstration purposes). Best, uwe > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html