Hi,
I guess this is what you wanted. Attaching a plot from a subset (lstSub) dat1<- read.csv("rightest.csv",sep=",",header=TRUE,check.names=FALSE) label1=c("0-25","25-50","50-75") Name1<-unlist(lapply(0:123,function(i) rep(i+1,i))) dat1New<- dat1[,-1] vec1<- unlist(lapply(seq_len(nrow(dat1New)),function(i) dat1New[i,][1:which(dat1New[i,]==0)-1])) dat3<-data.frame(Name1,vec1) dat3$Categ<-as.character(cut(dat3$vec1,breaks=seq(0,75,25),labels=label1)) source("k.txt") lst1<- split(dat3,dat3$Name1) #lstSub<-split(dat3,dat3$Name1)[1:4] pdf("ElisaNew0_25.pdf") lapply(lst1,function(x) {indx025<-which(x$Categ=="0-25"); indx2550<-which(x$Categ=="25-50");indx5075<-which(x$Categ=="50-75"); if(length(indx025)>=1) {matplot(k[,indx025],ylim=c(0,5),type="l",col="grey",main=paste("range 0-25","line=",unique(x$Name1),sep=" "),xlab="T",ylab="Q"); lines(k[,unique(x$Name1)],type="l",col="black")} else NULL}) dev.off() pdf("ElisaNew25_50New.pdf") lapply(lst1,function(x) {indx025<-which(x$Categ=="0-25"); indx2550<-which(x$Categ=="25-50");indx5075<-which(x$Categ=="50-75"); if(length(indx2550)>=1) {matplot(k[,indx2550],ylim=c(0,5),type="l",col="grey",main=paste("range 25-50","line=",unique(x$Name1),sep=" "),xlab="T",ylab="Q"); lines(k[,unique(x$Name1)],type="l",col="black")} else NULL}) dev.off() pdf("ElisaNew50_75.pdf") lapply(lst1,function(x) {indx025<-which(x$Categ=="0-25"); indx2550<-which(x$Categ=="25-50");indx5075<-which(x$Categ=="50-75"); if(length(indx5075)>=1) {matplot(k[,indx5075],ylim=c(0,5),type="l",col="grey",main=paste("range 50-75","line=",unique(x$Name1),sep=" "),xlab="T",ylab="Q"); lines(k[,unique(x$Name1)],type="l",col="black")} else NULL}) dev.off() A.K. ________________________________ From: eliza botto <eliza_bo...@hotmail.com> To: "smartpink...@yahoo.com" <smartpink...@yahoo.com> Sent: Tuesday, March 5, 2013 5:04 PM Subject: RE: histogram Dear Arun, Thanks for the update. Any success with the recently asked question? thanks elisa > Date: Tue, 5 Mar 2013 14:00:29 -0800 > From: smartpink...@yahoo.com > Subject: Re: histogram > To: eliza_bo...@hotmail.com > CC: r-help@r-project.org > > HI Elisa, > Just noticed the order of elements in vec1: > You have to replace `vec1` > dat2<- as.dist(dat1[,-1],upper=F,diag=F) > vec1<- as.vector(dat2) > head(vec1) > #[1] 5.796656 43.523023 38.193750 44.730182 6.511703 2.904954 #the order > is based on columns > > #with > dat1<- read.csv("rightest.csv",sep=",",header=TRUE,check.names=FALSE) > label1=c("0-25","25-50","50-75") > dat1New<- dat1[,-1] > vec1<- unlist(lapply(seq_len(nrow(dat1New)),function(i) > dat1New[i,][1:which(dat1New[i,]==0)-1])) > head(vec1) > # 1 1 2 1 2 3 > # 5.796656 43.523023 36.305633 38.193750 31.623020 5.391179 #correct order > dat1[1:4,1:4] > # St. 1 2 3 > #1 1 0.000000 5.796656 43.523023 > #2 2 5.796656 0.000000 36.305633 > #3 3 43.523023 36.305633 0.000000 > #4 4 38.193750 31.623020 5.391179 > > Name2<-unlist(lapply(0:123,function(i) if(length(rep(i+1,i)>=1)) > paste("(",paste(rep(i+1,i)[1],seq_along(rep(i+1,i)),sep=","),")",sep="") else > NULL)) > dat3New<- data.frame(Name2,vec1) > resNew<-t(aggregate(.~Name2,data=dat3New,function(x) > table(cut(x,breaks=seq(0,75,25),labels=label1)))) > colnames(resNew)<- resNew[1,] > resNew1<- resNew[-1,] > row.names(resNew1)<-gsub("vec1.","",row.names(resNew1)) > Names3<-apply(resNew1,1,function(x) paste(names(which(x!=0)),collapse=",")) > res2<- data.frame(Frequency=apply(resNew1,1,function(x) sum(1*(x!=0))), > stations=Names3,stringsAsFactors=FALSE) > > A.K. > > > > > > > ----- Original Message ----- > From: arun <smartpink...@yahoo.com> > To: eliza botto <eliza_bo...@hotmail.com> > Cc: > Sent: Tuesday, March 5, 2013 8:12 AM > Subject: Re: histogram > > Dear Elisa, > I already sent you the solution. > > > Name2<-unlist(lapply(0:123,function(i) > if(length(rep(i+1,i)>=1)) > paste("(",paste(rep(i+1,i)[1],seq_along(rep(i+1,i)),sep=","),")",sep="") > else NULL)) > dat3New<- data.frame(Name2,vec1) > resNew<-t(aggregate(.~Name2,data=dat3New,function(x) > table(cut(x,breaks=seq(0,75,25),labels=label1)))) > colnames(resNew)<- resNew[1,] > resNew1<- resNew[-1,] > row.names(resNew1)<-gsub("vec1.","",row.names(resNew1)) > Names3<-apply(resNew1,1,function(x) paste(names(which(x!=0)),collapse=",")) > res2<- data.frame(Frequency=apply(resNew1,1,function(x) sum(1*(x!=0))), > stations=Names3,stringsAsFactors=FALSE) > A.K. > > ________________________________ > From: eliza botto <eliza_bo...@hotmail.com> > To: "smartpink...@yahoo.com" <smartpink...@yahoo.com> > Sent: Tuesday, March 5, 2013 7:04 AM > Subject: RE: histogram > > > > Dear Arun, > Extremely sorry for replying you late. i really wanted to calculate the index > of dat3. It alright for me, even if the size of output is really large. > thanks in advance > > Elisa
ElisaNew25_50.pdf
Description: Adobe PDF document
______________________________________________ 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.