Hi everyone!
Need some help about assign a loop in a function which will read few columns,perform a ttest for those columns and return a p.value for each row in one single column
Thanks in advance!
what have you tried ?
have you studied examples of how to perform t-tests ?
if you have a specific dataset you want to work on, will you provide it as an example, or is there a built in R dataset that you would use as an example ?
Thanks for the reply!
I'm still a begginer with R... Not much knowledge about preassigned datasets.
I'm talking about an RNA sequence 19097 objects in 1019 variables. but I'll try to clarify myself...
I have columns 2:213 which referes to h1 cells and 214:376 refres to h9 cells.
Need to formulate a function which will return a p.value for h1 and h9 cells for each gene(rows).
thanks
you could start by reading about ttests here: https://statistics.berkeley.edu/computing/r-t-tests
and how to produce examples of your data here :FAQ: How to do a minimal reproducible example ( reprex ) for beginners
Thanks for the links. It give me a some more info. Although lets put this way... If i have this:
t.test(RNAseq[1,2:213],RNAseq[1,214:376])$p.value
which relates to the first row... how can write it to apply to all other 19000 rows?
An example with made up RNAseq data.frame
please please see the guide i shared on reprex for how to do this yourself in the future. I spent time making mock data to demo for you when really you should have provided it
I would use purrr to handle the iteration and result collation, and tryCatch to handle error cases
RNAseq <- structure(list(
somevalue = c( 20.22, 15.84, 20, 22.9, 18.3, 18.9, 17.4, 17.6, 18, 17.98, 17.82),
a = c( 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0),
b = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
c = c( 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3),
d = c( 1, 4, 2, 2, 4, 4, 3, 3, 3, 4, 4)),
row.names = c(NA, -11L), class = "data.frame")
#amounts to a t test of c(1,0) with c(3,1)
t.test(RNAseq[1, 2:3], RNAseq[1, 4:5])$p.value
#[1] 0.3498856
#but do a t test of c(0,0) with c(3,3) would error as follows
t.test(RNAseq[7, 2:3], RNAseq[7, 4:5])$p.value
#Error in t.test.default(RNAseq[7, 2:3], RNAseq[7, 4:5]) :
# data are essentially constant
#therefore wrap the ttest in a trycatch that handles the error by making the result NA_real_
library(purrr)
gathered_p_vals <- map_dbl( 1:nrow(RNAseq),
~ tryCatch(t.test(RNAseq[.x, 2:3],
RNAseq[.x, 4:5])$p.value,
error = function(c) NA_real_))
Thanks for your support!
I finally managed to get what I needed. Although I apologise for not using reprex and eventually not be clear on my topic.
Anyway much aprecieted the time taken!
Regards.
pvalue<-(t.test(RNAseq[1,2:213],RNAseq[1,214:376]))$p.value
for (i in 1:nrow(RNAseq)) {
pvalue<-t.test(RNAseq[i,2:213],RNAseq[i,214:376])$p.value
cat(pvalue,'\n')
}
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.