Hello, The trick is to use index vectors. They allow us to do without loops.
Try the following. muscle <- read.table(text=' "ID" "adj.P.Val" "logFC" "Gene.symbol" "1419156_at" "5.32e-12" "2.6462565" "Sox4" "1433575_at" "5.32e-12" "3.9417089" "Sox4" "1428942_at" "2.64e-11" "3.9163618" "Mt2" "1454699_at" "2.69e-10" "1.8654677" "LOC100047324///Sesn1" "1416926_at" "3.19e-10" "2.172342" "Trp53inp1" "1422557_s_at" "1.58e-09" "2.9569254" "Mt1" ', header=TRUE, stringsAsFactors=FALSE) muscle p_thresh = 6.51e-06 # Create index vectors gsym <- muscle$Gene.symbol != "" this_pval <- muscle$adj.P.Val <= p_thresh this_Ma <- muscle$logFC > -1 this_Mb <- muscle$logFC < 1 # Use them downregulated_list <- muscle$Gene.symbol[gsym & !this_Ma & this_pval] upregulated_list <- muscle$Gene.symbol[gsym & !this_Mb & this_pval] nochange <- muscle$Gene.symbol[gsym & this_Ma & this_Mb] # See the result [ Maybe with head() ] upregulated_list downregulated_list nochange Hope this helps, Rui Barradas Em 12-06-2012 21:55, mousy0815 escreveu:
upregulated_list = c() downregulated_list = c() nochange = c() p_thresh = 6.51e-06 x=1 while (x <= nrow(muscle)) { this_pval = muscle[x,"adj.P.Val"] this_M = muscle[x, "logFC"]
______________________________________________ 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.