Dear all,
I have been working on this problem from so many hours but did not find any
solution.
I have a data frame with 8 columns-
V1 V2 V3 V4 W1 W2 W3 W4
1 0 84 22 10 0 84 0 0
2 35 84 0 0 22 84 0 0
3 0 0 0 48 0 0 0 48
4 0 48 0 0 0 48 0 0
5 0 84 0 0 0 84 0 0
6 0 0 0 48 0 0 0 48
from first four columns, for each row I have to take two largest values. and
these two values will be considered as observed values.And from last four column
we will get the expected values.So i have to perform chi square test for each
row to get p values.
example for first row is-
first two largest values are 84(in V2) and 22 (in V3).so these are considered as
observed values.Now if the largest values are in V2 and V3,we have to pick
expected values from W2 and W3 which are 84 and 0.I know for chi square test
values should not be 0 but we will ignore the warning.
Now as we have observed value as well as expected we have to perform chi square
test to get p values for each row in a new column.
So far I was working as returning the index for two largest value with-
sort.int(df,index.return=TRUE)$ix[c(4,3)]
but it does not accept data frame.
Can you please give some idea how to do this,because it is very tricky and after
studying a lot, I am not able to perform.Please help.
Thanking you,
Warm Regards
Vikas Bansal
Msc Bioinformatics
Kings College London
Is there anyone who can help me with chi square test on data frame.I am
struggling from last 2 days.I will be very thankful to you.
Dear all,
I have been working on this problem from so many hours but did not find any
solution.
I have a data frame with 8 columns-
V1 V2 V3 V4 W1 W2 W3 W4
1 0 84 22 10 0 84 0 0
2 35 84 0 0 22 84 0 0
3 0 0 0 48 0 0 0 48
4 0 48 0 0 0 48 0 0
5 0 84 0 0 0 84 0 0
6 0 0 0 48 0 0 0 48
from first four columns, for each row I have to take two largest values. and
these two values will be considered as observed values.And from last four column
we will get the expected values.So i have to perform chi square test for each
row to get p values.
example for first row is-
first two largest values are 84(in V2) and 22 (in V3).so these are considered as
observed values.Now if the largest values are in V2 and V3,we have to pick
expected values from W2 and W3 which are 84 and 0.I know for chi square test
values should not be 0 but we will ignore the warning.
Now as we have observed value as well as expected we have to perform chi square
test to get p values for each row in a new column.
So far I was working as returning the index for two largest value with-
sort.int(df,index.return=TRUE)$ix[c(4,3)]
but it does not accept data frame.
Can you please give some idea how to do this,because it is very tricky and after
studying a lot, I am not able to perform.Please help.
Thanking you,
Warm Regards
Vikas Bansal
Msc Bioinformatics
Kings College London
______________________________________________
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.
If your data is d1:
temp <- apply(d1[,1:4], 1, order, decreasing=TRUE)[1:2,]
temp <- rbind(temp, temp+4)
result <- sapply(1:nrow(d1), function(i)
chisq.test(matrix(as.matrix(d1[i,temp[,i]]), ncol=2)))
Uwe Ligges
On 16.08.2011 23:26, Bansal, Vikas wrote:> Dear all,
>
> I have been working on this problem from so many hours but did not find any
solution.
> I have a data frame with 8 columns-
> V1 V2 V3 V4 W1 W2 W3 W4
> 1 0 84 22 10 0 84 0 0
> 2 35 84 0 0 22 84 0 0
> 3 0 0 0 48 0 0 0 48
> 4 0 48 0 0 0 48 0 0
> 5 0 84 0 0 0 84 0 0
> 6 0 0 0 48 0 0 0 48
>
> from first four columns, for each row I have to take two largest values.
and these two values will be considered as observed values.And from last four
column we will get the expected values.So i have to perform chi square test for
each row to get p values.
>
> example for first row is-
>
> first two largest values are 84(in V2) and 22 (in V3).so these are
considered as observed values.Now if the largest values are in V2 and V3,we have
to pick expected values from W2 and W3 which are 84 and 0.I know for chi square
test values should not be 0 but we will ignore the warning.
> Now as we have observed value as well as expected we have to perform chi
square test to get p values for each row in a new column.
>
>
> So far I was working as returning the index for two largest value with-
> sort.int(df,index.return=TRUE)$ix[c(4,3)]
> but it does not accept data frame.
>
> Can you please give some idea how to do this,because it is very tricky and
after studying a lot, I am not able to perform.Please help.
>
>
>
> Thanking you,
> Warm Regards
> Vikas Bansal
> Msc Bioinformatics
> Kings College London
> ______________________________________________
> 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.