[R] Outputing dataframe or vector from within a user defined function
Farrel Buchinsky
fjbuch at gmail.com
Fri May 5 02:13:59 CEST 2006
"Uwe Ligges" <ligges at statistik.uni-dortmund.de> wrote in message
news:43A7C167.4020104 at statistik.uni-dortmund.de...
> 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.
More information about the R-help
mailing list