Hi Arun,
Thanks a lot for your script. Ill work on it tomorrow.
Cheers


On 24/04/2014, at 11:54 AM, "arun kirshna [via R]" 
<ml-node+s789695n4689356...@n4.nabble.com> wrote:

> HI, 
> I guess you got an output like this using my script: 
> ##Please use ?dput() to show the example data. 
> 
> FA <- structure(list(Sample = c("L1 Control", "L1 Control", "L1 Control", 
> "BBM Control", "BBM Control", "BBM Control", "L1 Ash", "L1 Ash", 
> "L1 Ash", "BBM Ash", "BBM Ash", "BBM Ash"), C14.0 = c(0.456509192,  
> 0.513989684, 0.555894496, 0.418392781, 0.405826292, 0.398633968, 
> 0.504528078, 0.548667997, 0.499237645, 0.380582244, 0.395617943, 
> 0.389027115), C15.0 = c(0.469562687, 0.527958026, 0.502389699, 
> 0.385119329, 0.368564514, 0.391851493, 0.479125577, 0.517533922, 
> 0.490619858, 0.380051535, 0.384498216, 0.370815474), C15.1 = c(0.774909216, 
> 0.732083085, 0.706407924, 1.318261983, 1.114889958, 1.238411437, 
> 0.793236101, 0.632962545, 0.74858627, 0.996870831, 0.963780759, 
> 0.923329859)), .Names = c("Sample", "C14.0", "C15.0", "C15.1" 
> ), class = "data.frame", row.names = c(NA, -12L)) 
> 
> library(gvlma) 
> y <- names(FA)[-1] 
>  y 
> #[1] "C14.0" "C15.0" "C15.1" 
> 
> lst1 <- setNames(vector("list", length(y)),y) 
> 
>  for(i in y){ 
>  lst1[[i]] <- gvlma(lm(get(i)~Sample,data=FA)) 
>  lst1}  
> 
> lst1[[1]] 
> # 
> #Call: 
> #lm(formula = get(y[i]) ~ Sample, data = FA) 
> #--------------------------------------- 
> 
> But, you wanted to show each of the list output as in gvlmaFA. 
> 
> gvlmaFA <- gvlma(lm(C14.0~Sample,data=FA)) 
> 
> 
> In my previous script, I didn't name the list.  Here, by setting the names as 
> in "y", it could be easier.  I guess you wanted to reflect that in the model 
> formula as well. 
> 
> lst2 <- setNames(vector("list", length(y)), y) 
> for(names in y){ 
> lst2[[names]] <- eval(bquote(gvlma(lm(.(names1)~ Sample, data=FA)), 
> list(names1=as.name(names)))) 
> lst2} 
> 
> identical(gvlmaFA, lst2[[1]]) 
> #[1] TRUE 
> 
> A.K. 
> 
> 
> 
> 
> 
> 
> Hi Arun, 
> Your script works but it does not do what I was after. To be a bit more 
> specific,  this the table FA in which Im working on ( but the original one 
> has 34 fatty acids instead of 3: C14.0, C15.0, and C15.1). 
> 
> Sample 
>     
> 
> C14:0 
>     
> 
> C15:0 
>     
> 
> C15:1 
> 
> L1 Control 
>     
> 
> 0.456509192 
>     
> 
> 0.469562687 
>     
> 
> 0.774909216 
> 
> L1 Control 
>     
> 
> 0.513989684 
>     
> 
> 0.527958026 
>     
> 
> 0.732083085 
> 
> L1 Control 
>     
> 
> 0.555894496 
>     
> 
> 0.502389699 
>     
> 
> 0.706407924 
> 
> BBM Control 
>     
> 
> 0.418392781 
>     
> 
> 0.385119329 
>     
> 
> 1.318261983 
> 
> BBM Control 
>     
> 
> 0.405826292 
>     
> 
> 0.368564514 
>     
> 
> 1.114889958 
> 
> BBM Control 
>     
> 
> 0.398633968 
>     
> 
> 0.391851493 
>     
> 
> 1.238411437 
> 
> L1 Ash 
>     
> 
> 0.504528078 
>     
> 
> 0.479125577 
>     
> 
> 0.793236101 
> 
> L1 Ash 
>     
> 
> 0.548667997 
>     
> 
> 0.517533922 
>     
> 
> 0.632962545 
> 
> L1 Ash 
>     
> 
> 0.499237645 
>     
> 
> 0.490619858 
>     
> 
> 0.74858627 
> 
> BBM Ash 
>     
> 
> 0.380582244 
>     
> 
> 0.380051535 
>     
> 
> 0.996870831 
> 
> BBM Ash 
>     
> 
> 0.395617943 
>     
> 
> 0.384498216 
>     
> 
> 0.963780759 
> 
> BBM Ash 
>     
> 
> 0.389027115 
>     
> 
> 0.370815474 
>     
> 
> 0.923329859 
> 
> I just want to run the following script but with C15.0, C15.1 and the other 
> 32 so I can quickly scroll up and down to see who does not meet the 
> assumptions. 
> 
> FA.ml=lm(C14.0~Sample,data=FA) 
> gvlmaFA<-gvlma(FA.ml) 
> gvlmaFA 
> 
> This is the result when I run the script 
> 
> Call: 
> lm(formula = C14.0 ~ Sample, data = FA) 
> 
> Coefficients: 
>       (Intercept)  SampleBBM Control       SampleL1 Ash   SampleL1 Control  
>           0.38841            0.01921            0.12907            0.12039  
> 
> 
> ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS 
> USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM: 
> Level of Significance =  0.05 
> 
> Call: 
>  gvlma(x = FA.ml) 
> 
>                        Value p-value                   Decision 
> Global Stat        4.757e+00 0.31312    Assumptions acceptable. 
> Skewness           1.944e-02 0.88911    Assumptions acceptable. 
> Kurtosis           1.462e-01 0.70219    Assumptions acceptable. 
> Link Function      3.682e-16 1.00000    Assumptions acceptable. 
> Heteroscedasticity 4.592e+00 0.03213 Assumptions NOT satisfied! 
> 
> I really appreciate if you can help me with this issue. This would be really 
> useful for me since I have large tables of data. 
> Cheers 
> 
> 
> On Monday, April 21, 2014 9:19 AM, arun <[hidden email]> wrote: 
> Hi, 
> 
> Using the example data from library(gvlma) 
> 
> library(gvlma) 
> data(CarMileageData) 
> CarMileageNew <- CarMileageData[,c(5,6,3)] 
>  lst1 <- list() 
>  y <- c("NumGallons", "NumDaysBetw") 
>  for(i in seq_along(y)){ 
>  lst1[[i]] <- gvlma(lm(get(y[i])~MilesLastFill,data=CarMileageNew)) 
>  lst1} 
> pdf("gvlmaplot.pdf") 
>  lapply(lst1,plot) 
> dev.off() 
> 
> 
> You could also use ?lapply(). 
> 
> 
> A.K. 
> 
> 
> 
> Hi 
> I have a spread sheet with a column Samples (column1) and then 34 more 
> columns with different concentrations of fatty acids per sample. Im trying to 
> run the same function 34 times. In this case (the first of 34), I have a 
> fatty acid called C14.0 (column 2). I'm a newbie with R so I spent the last 4 
> days looking for a way of doing it (without running the same function 34 
> times with a different fatty acid each time). I saw that people do similar 
> things with loops but I cannot get them to work. 
> I have tried the script below but it does not work. 
> 
> y<-c("C14.0","C15.0","C16.0") 
> for (i in y) { 
> FA.ml=lm(i~Sample,data=FA) 
> gvlmaFA<-gvlma(FA.ml) 
> gvlmaFA 
> } 
> 
> 
> I really appreciate if someone can give me a hand with that. I know would 
> have been finished if I had typed the 34 fatty acids but I want to learn how 
> to do it with loops. 
> Cheers 
> 
> ______________________________________________ 
> [hidden email] mailing list 
> 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. 
> 
> 
> If you reply to this email, your message will be added to the discussion 
> below:
> http://r.789695.n4.nabble.com/Loops-run-the-same-function-per-different-columns-tp4689171p4689356.html
> To unsubscribe from Loops (run the same function per different columns), 
> click here.
> NAML




--
View this message in context: 
http://r.789695.n4.nabble.com/Loops-run-the-same-function-per-different-columns-tp4689171p4689452.html
Sent from the R help mailing list archive at Nabble.com.
        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
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.

Reply via email to