Hi, library(plyr) res<-ddply(dat1,.(ACTIVITY), summarise, cbind(if(length(unique(COUNTS))==1) NA else shapiro.test(COUNTS)$p.value, if(length(unique(COUNTS))==1) NA else shapiro.test(COUNTS)$statistic)) res1<- data.frame(ACTIVITY=res[,1],as.data.frame(res[,2]),stringsAsFactors=FALSE) names(res1)[2:3]<-c("Pvalue","stats") res1 # ACTIVITY Pvalue stats #1 activity1 NA NA #2 activity2 8.025059e-11 0.4588439 #3 activity3 3.760396e-07 0.7282838 str(res1) #'data.frame': 3 obs. of 3 variables: # $ ACTIVITY: chr "activity1" "activity2" "activity3" # $ Pvalue : num NA 8.03e-11 3.76e-07 # $ stats : num NA 0.459 0.728
#or res2<-ddply(dat1,.(ACTIVITY), summarise, value=c(if(length(unique(COUNTS))==1) NA else shapiro.test(COUNTS)$p.value, if(length(unique(COUNTS))==1) NA else shapiro.test(COUNTS)$statistic)) res2$newCol<-rep(c("Pvalue","stats"),times=nrow(res2)/2) library(reshape2) res3<-dcast(res2,ACTIVITY~newCol,value.var="value") res3 # ACTIVITY Pvalue stats #1 activity1 NA NA #2 activity2 8.025059e-11 0.4588439 #3 activity3 3.760396e-07 0.7282838 A.K. ----- Original Message ----- From: "Mossadegh, Ramine N." <ramine.mossad...@finra.org> To: arun <smartpink...@yahoo.com> Cc: Sent: Friday, April 5, 2013 4:17 PM Subject: RE: [R] How to perform a grouped shapiro wilk test on dataframe The statistic & the p.value . When I do all2 <- as.data.frame(stats), I get lots of garbage in 2nd column like: list(statistic = 0.0889037906739691, p.value = 6.41197341678277e-20, method = "Shapiro-Wilk normality test", data.name = "x") Thanks -----Original Message----- From: arun [mailto:smartpink...@yahoo.com] Sent: Friday, April 05, 2013 4:15 PM To: Mossadegh, Ramine N. Subject: Re: [R] How to perform a grouped shapiro wilk test on dataframe It depends upon what results you want to put into dataframe. ----- Original Message ----- From: "Mossadegh, Ramine N." <ramine.mossad...@finra.org> To: arun <smartpink...@yahoo.com> Cc: Sent: Friday, April 5, 2013 3:12 PM Subject: RE: [R] How to perform a grouped shapiro wilk test on dataframe Thanks it now works but how can I put the results back in a data frame? -----Original Message----- From: arun [mailto:smartpink...@yahoo.com] Sent: Friday, April 05, 2013 2:35 PM To: Mossadegh, Ramine N. Cc: R help Subject: Re: [R] How to perform a grouped shapiro wilk test on dataframe Hi, Try this: dat1<- read.csv("sample.csv",sep="\t",stringsAsFactors=FALSE) with(dat1,tapply(COUNTS,list(ACTIVITY),function(x) if (length(unique(x))==1) NA else shapiro.test(x))) #$activity1 #[1] NA #$activity2 # Shapiro-Wilk normality test #data: x #W = 0.4588, p-value = 8.025e-11 # #$activity3 # Shapiro-Wilk normality test # #data: x #W = 0.7283, p-value = 3.76e-07 library(plyr) ddply(dat1,.(ACTIVITY), summarise, Pval=if(length(unique(COUNTS))==1) NA else shapiro.test(COUNTS)$p.value) # ACTIVITY Pval #1 activity1 NA #2 activity2 8.025059e-11 #3 activity3 3.760396e-07 A.K. ----- Original Message ----- From: ramoss <ramine.mossad...@finra.org> To: r-help@r-project.org Cc: Sent: Friday, April 5, 2013 10:50 AM Subject: [R] How to perform a grouped shapiro wilk test on dataframe Hello, I was wandering if it is possible to perform on a dataframe called 'all' a shapiro wilk normality test for COUNTS by variable Group ACTIVITY? Could it be done using plyer? I saw an eg that applies to an array but not to a dataframe: lapply(split(dataset1$Height,dataset1$Group),shapiro.test) Any thoughts would be much appreciated. My dataframe is in shape: dat ACTIVIT COUNTS 1/1/13 XXXX 43 .. .. 1/31/13 XXXX 60 1/1/13 YYYY 40 .. .. 1/31/13 YYYY 10 etc going for 3 months. -- View this message in context: http://r.789695.n4.nabble.com/How-to-perform-a-grouped-shapiro-wilk-test-on-dataframe-tp4663438.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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. Confidentiality Notice: This email, including attachments, may include non-public, proprietary, confidential or legally privileged information. If you are not an intended recipient or an authorized agent of an intended recipient, you are hereby notified that any dissemination, distribution or copying of the information contained in or transmitted with this e-mail is unauthorized and strictly prohibited. If you have received this email in error, please notify the sender by replying to this message and permanently delete this e-mail, its attachments, and any copies of it immediately. You should not retain, copy or use this e-mail or any attachment for any purpose, nor disclose all or any part of the contents to any other person. Thank you Confidentiality Notice: This email, including attachments, may include non-public, proprietary, confidential or legally privileged information. If you are not an intended recipient or an authorized agent of an intended recipient, you are hereby notified that any dissemination, distribution or copying of the information contained in or transmitted with this e-mail is unauthorized and strictly prohibited. If you have received this email in error, please notify the sender by replying to this message and permanently delete this e-mail, its attachments, and any copies of it immediately. You should not retain, copy or use this e-mail or any attachment for any purpose, nor disclose all or any part of the contents to any other person. Thank you ______________________________________________ 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.