[R] how can i compute the average of three blocks for each column ?
Petr Pikal
petr.pikal at precheza.cz
Tue Oct 17 12:00:10 CEST 2006
Hi
I haven't seen any answer yet so I try
>From your not very clear explanation I suspect you want to do some
block aggregation
> test
block x1 x2 x3 x4 x5
1 1 23 22 23 24 23
2 1 21 25 26 21 39
3 1 23 24 22 23 23
4 2 20 21 23 24 28
5 2 32 23 34 24 26
6 2 19 34 34 13 34
7 3 12 32 23 34 19
8 3 23 24 25 26 27
9 3 12 78 23 24 24
> by(test[,-1], test$block, mean)
test$block: 1
x1 x2 x3 x4 x5
22.33333 23.66667 23.66667 22.66667 28.33333
-----------------------------------------------------------------------------------------------------
test$block: 2
x1 x2 x3 x4 x5
23.66667 26.00000 30.33333 20.33333 29.33333
-----------------------------------------------------------------------------------------------------
test$block: 3
x1 x2 x3 x4 x5
15.66667 44.66667 23.66667 28.00000 23.33333
> aggregate(test[,-1], list(test$block), mean)
Group.1 x1 x2 x3 x4 x5
1 1 22.33333 23.66667 23.66667 22.66667 28.33333
2 2 23.66667 26.00000 30.33333 20.33333 29.33333
3 3 15.66667 44.66667 23.66667 28.00000 23.33333
>
Regarding your second question with plotting see arguments in par,
especially mar or mai.
HTH
Petr
On 15 Oct 2006 at 22:22, Yen Ngo wrote:
Date sent: Sun, 15 Oct 2006 22:22:19 +0200 (CEST)
From: Yen Ngo <yen_h_ngo at yahoo.se>
To: r-help at stat.math.ethz.ch
Subject: [R] how can i compute the average of three blocks for each column ?
> Dear all,
>
>
> I want to compute the average of the three blocks for each
> x-variable which is equal slide in the code below. How can I do that
> ?
>
>
> block x1 x2 x3 x4 x5
> 1 23 22 23 24 23
> 1 21 25 26 21 39
> 1 23 24 22 23 23
> 2 20 21 23 24 28
> 2 32 23 34 24 26
> 2 19 34 34 13 34
> 3 12 32 ´ 23 34 19
> 3 23 24 25 26 27
> 3 12 78 23 24 24
>
>
> # read table of data for this slide=(x1)
> a<-read.table(file = slide[i],header=T,sep='\t',na.strings="NA")
> #length(a$ID) #Eleminate Neg. and Pos. controls from the dataset.
> The logical negation of the "%in%" function, #tells subset to only
> select those row where the "ID" column does not contain either
> "empty" or "none" new <- subset(a,!ID %in% c("empty","none"," "))
> #length(new$ID) #new[1:20,c(1,4,5,9)]
>
>
> #five first columns give position identifiers, include a column with
> block layout=new[,1:5] layout[1:30,]
>
> #9th columns which give the median foreground =values of x-variables
> fg1=as.matrix(new[,9]) length(fg1) mean(fg1) # calculate the mean
> of x1
>
>
>
> #### I try to do something like :##########
>
> block1=fg1[layout$Block==1,]
> block2=fg1[layout$Block==1,]
> block2=fg1[layout$Block==1,]
> average=(block1+block2+block3)/3
>
> but it did not work.
>
> ################## How can i calculate the means of remaining
> x_variables? ######### Read data for the remaining slides
> =x2,x3,x4,x5 ###########
>
> for (i in 2:num.slides){
> na1 <- strsplit(na[[i]][k],".txt")
> na2 <- strsplit(na1[[1]][1],"-")
> bat=na2[[1]][1]
> sli=na2[[1]][2]
> nslide <- cbind(nslide,as.numeric(sli))
> # nslide is a vector giving the number of the slide in the batch #
> read table of data for this slide
> a<-read.table(file=slide[i],header=T,sep='\t',na.strings="NA") new<-
> subset(a,!ID %in% c("empty","none"," ")) # append FG data to the
> matrices containing the slides already read
> fg1=cbind(fg1,as.matrix(new[,9])) }
>
> colnames(fg1)=nslide
> fg<-data.frame(peptide=c(new$Name),fg1)
> fg <- edit(fg)
>
>
>
> ##### Another question : I have three graphs which are displayed one
> after one with a large space between them. Can I move these graph
> closer each other by making them bigger and how ? Below is the code
> that i have written for plotting the graphs.
>
> par(mfrow=c(3,1))
> for (j in 1:3)
> {
> boxplot(split(pos$y[pos$Block==j],pos$Slide[pos$Block==j]),
> col="lightgray", cex=.65, outline=TRUE, main=paste("Positive Controls
> Block",j)) }
>
>
> Thank you for your help,
> Regards,
>
> Yen
>
> [[alternative HTML version deleted]]
>
>
Petr Pikal
petr.pikal at precheza.cz
More information about the R-help
mailing list