[R] stat_function with data frames in ggplot2
David Winsemius
dw|n@em|u@ @end|ng |rom comc@@t@net
Thu Jun 7 17:23:50 CEST 2018
> On Jun 7, 2018, at 7:18 AM, Veerappa Chetty <chettyvk using gmail.com> wrote:
>
> I use solve(A,b) inside my function, myfun2; it works fine when I return
> one value or a list.
> I want use the return values in ggplot as below: ggplot(data.frame(
> x=c(0.1,0.8)),aes(x=x))+stat_function(fun=myfun.2,geom="line")
> I get a blank graph. Would greatly appreciate help! Thanks.
>
> Here are my codes:
> p.lm<-0.05 ##to initialze only
> p.lh<-0.1
> p.ll<-1-p.lm-p.lh
> p.ml<-0.3
> p.mh<-0.1
> p.mm<-1-p.ml-p.mh
> p.hl<-0.05
> p.hm<-0.5
> p.hh<-1-p.hl-p.hm
> myfun.5<-function(xvar){
> y<-numeric(2)
> p.lm<-xvar
> A<-matrix(c(p.lm+p.lh+p.hl,p.hl-p.ml,p.hm-p.lm,p.ml+p.mh+p.hm),nrow=2,byrow
> = TRUE)
> b<-c(p.hl,p.hm)
> y<-solve(A,b)
> z<-list(y[1],y[2],1-y[1]-y[2])
> z[1]
> }
>
> g.2<-ggplot(data.frame(
> x=c(0.1,0.8)),aes(x=x))+stat_function(fun=myfun.5,geom="line")
> g.2
You are a) failing to pay attention to the warning message:
> g.2
Warning message:
Computation failed in `stat_function()`:
'a' (2 x 102) must be square
>
.... and b) as a consequence failing to debug your function. Add a print(A) line immediately after your construction of A:
myfun.5(1:10)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
[1,] 1.15 2.15 3.15 4.15 5.15 6.15 7.15 8.15 9.15 10.15 -0.25
[2,] -0.50 -1.50 -2.50 -3.50 -4.50 -5.50 -6.50 -7.50 -8.50 -9.50 0.90
Error in solve.default(A, b) : 'a' (2 x 11) must be square
The fun argument in stat_fun is supposed to accept a vector with x values and return y values for "predictions". You have not indicated what plot was expected, You've given no indication what the various constants are supposed to represent, and you are only giving x-values to aes.ggplot, so I'm unable to infer what is intended.
> --
> Professor of Family Medicine
> Boston University
> Tel: 617-414-6221, Fax:617-414-3345
> emails: chettyvk using gmail.com,vchetty using bu.edu
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
David Winsemius
Alameda, CA, USA
'Any technology distinguishable from magic is insufficiently advanced.' -Gehm's Corollary to Clarke's Third Law
More information about the R-help
mailing list