[R] FOR loop with statistical analysis for microarray data

Weidong Gu anopheles123 at gmail.com
Thu Oct 27 17:27:07 CEST 2011


Looks like you have problems with indexing. In your code, fc is a
vector of length 2, pv is a scalar(it only keeps the last value of the
loop), then you try to cbind different lengths of vectors
(row.names(y1), fc and pv). cbind only works for vectors with the same
length.

I don't know what you want to achieve, but you can keep p.value using
pv[i]. In the previous code, you reassiged pv before pv[i]. So your
1st assignment of pv wiped out pv vector. You need to read helps about
indexing, vectors.

Weidong

On Thu, Oct 27, 2011 at 10:41 AM, Seb <seba.bat at gmail.com> wrote:
> thanks for the replies.... so, i remove the indices pv[i] and
> fc[i]..but when i run it like this:
> ===============
> fc=0
> pv=0
> for (i in 1:nrow(data))
> {
>
>        v1= c(y1[i,1], y1[i,2])
>        v2= c(y2[i,1], y2[1,2])
>        fc=v1-v2
>        w=t.test(v1,v2)
>        pv=w$p.value
> }
>
> results = cbind(row.names(y1), fc, pv)
>
> head(results)
> =================
>
> i get
>
> ===========
> Warning message:
> In cbind(row.names(y1), fc, pv) :
>  number of rows of result is not a multiple of vector length (arg 2)
> =============
>
> and the "fc" values are repeated over until the end of the rows and
> the "pv" is the same all across the samples...how can i fix it?!
>
> ...i apologize if it's a silly situation but i'm new to this and can't
> get my head around it!
>
> thanks so much!!
>
>
>
>
>
>
>
> On Thu, Oct 27, 2011 at 9:02 AM, Weidong Gu <anopheles123 at gmail.com> wrote:
>> In your loop, you assign, for example, pv twice
>> pv=w$p.value # pv is scalar
>> pv[i]= w[2]   # pv is a vector
>>
>> give an example for the point
>>
>> pv=1
>> pv[5]=2
>> pv
>> [1]  1 NA NA NA  2
>>
>> This may not be what you want.
>>
>> Weidong
>>
>> On Thu, Oct 27, 2011 at 7:40 AM, Seb <seba.bat at gmail.com> wrote:
>>> y1,y2 were designed as follow,from the original data file :
>>> y1=data[,1:2]
>>> y2=data[,3:4]
>>>
>>> ...I am a bit confused with what "redesign the whole vector again" and
>>> "specify indices twice " actually mean?...could u point it out in the
>>> script?
>>>
>>> Thanks so much I really appreciate it!!
>>>
>>> Sent from my -DROID-
>>>
>>> On Oct 26, 2011 6:56 PM, "Weidong Gu"  wrote:
>>>>
>>>> If you provide an example data (y1 and y2 in the loop), you might have
>>>> got specific helps already. A few things in your loop seem suspicious.
>>>> fc and pv are vectors, and in each loop you redesigned the whole
>>>> vectors and specific indices twice. That may cause your problems.
>>>>
>>>> Weidong Gu
>>>>
>>>>
>>>>
>>>> On Wed, Oct 26, 2011 at 4:56 PM, Seb <seba.bat at gmail.com> wrote:
>>>> > hi all
>>>> >
>>>> > i started recently using R and i found myself stuck when i try to
>>>> > analyze microarray data.
>>>> >
>>>> > i use the "affy" package to obtain  the intensities of the probes, i
>>>> > have two CTRs and two treated.
>>>> >
>>>> >  HG.U133A.Experiment1.CEL HG.U133A.Experiment2.CEL
>>>> > HG.U133A_Control1.CEL HG.U133A_Control2.CEL
>>>> > 1007_s_at               2156.23115                467.75615
>>>> >  364.60615             362.11865
>>>> > 1053_at                   88.76368                 93.58436
>>>> >  438.49365             357.75615
>>>> > 117_at                   144.00743                101.26120
>>>> >  95.11117             107.01623
>>>> > 121_at                   551.36865                639.45615
>>>> >  456.66865             435.95615
>>>> > 1255_g_at                 65.33164                 18.39570
>>>> >  14.22565              20.74632
>>>> > 1294_at                  106.19083                169.69369
>>>> >  78.15722              81.14689
>>>> >
>>>> > i divided the first two columns in two data.frames to divide Experim and
>>> CTRs
>>>> >
>>>> > then, i created a FOR loop to create a vector per each row containing
>>>> > a vector with two values per each gene and i wanted to do a
>>>> > Wilcox.test to obtain the significant genes..BUT i get a list of NULL
>>>> > like you can see here
>>>> > ..the first row works but then i get NULL down till the end of the
>>> array...
>>>> >
>>>> >                fc        pv
>>>> > [1,] "1007_s_at" -20.248   0.4664612
>>>> > [2,] "1053_at"   -344.7132 NULL
>>>> > [3,] "117_at"    NULL      NULL
>>>> > [4,] "121_at"    NULL      NULL
>>>> > [5,] "1255_g_at" NULL      NULL
>>>> > [6,] "1294_at"   NULL      NULL
>>>> >
>>>> > the script i used is:
>>>> > ===================
>>>> > fc=0
>>>> > pv=0
>>>> > for (i in 1:nrow(data))
>>>> > {
>>>> >        v1= c(y1[i,1], y1[i,2])
>>>> >        v2= c(y2[i,1], y2[1,2])
>>>> >        fc=v1-v2
>>>> >        w=t.test(v1,v2)
>>>> >        pv=w$p.value
>>>> >        fc[i]= w[1]
>>>> >        pv[i]= w[2]
>>>> > }
>>>> >
>>>> > results = cbind(row.names(y1), fc, pv)
>>>> >
>>>> > head(results)
>>>> >
>>>> > ================
>>>> >
>>>> > what did i do wrong? i can't find a way around this!!!
>>>> >
>>>> > thanks so much!!!
>>>> >
>>>> > Seb
>>>> >
>>>> > ______________________________________________
>>>> > R-help at 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.
>>>> >
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help at 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.
>>>
>>
>



More information about the R-help mailing list