Question: conditional replace column values with values from a different column
0
gravatar for Assa Yeroslaviz
8.6 years ago by
Assa Yeroslaviz1.4k
Munich, Germany
Assa Yeroslaviz1.4k wrote:
Hi R Users, I have a data.frame with various NAs (df name is 'bp_subset'): GOBPIDPvalueTermPvalue2Term2 1GO:00000414.991241e-03transition metal ion transport0.0305047593transition metal ion transport 2GO:0000103NANA 0.0475575125sulfate assimilation 3GO:0000904NANA0.0211635899cell morphogenesis involved in differentiation 4GO:0001505NANA0.0314384424regulation of neurotransmitter levels 5GO:0001508NANA0.0017933627regulation of action potential 6GO:00016594.018995e-02temperature homeostasisNANA I would like tobe abale to replace the 'NA' values of the column "Term", with the values of column "Term2" (if they are not 'NA') I tried to do it with an if statement, but it doesn't work correctly. > if is.na(bp_subset[,3])) bp_subset[,3] <- bp_subset[,5]Warning message:In if is.na(bp_subset[, 3])) bp_subset[, 3] <- bp_subset[, 5] : the condition has length > 1 and only the first element will be used I also tried to do something like: bp_subset_test[is.na(bp_subset_test$Term)] <- bp_subset_test$Term2 Error in `[<-.data.frame`(`*tmp*`, is.na(bp_subset_test$Term), value = c("transition metal ion transport", : duplicate subscripts for columns Is there another way of doing it? THX, Assa > sessionInfo()R version 2.12.2 (2011-02-25) Platform: x86_64-pc-linux-gnu (64-bit) locale: [1] C attached base packages: [1] splines grid stats graphics grDevices utils datasets methods base other attached packages: [1] GSEABase_1.12.1 org.Mm.eg.db_2.4.6 Heatplus_1.20.0 ggplot2_0.8.9 proto_0.3-9.1 [6] reshape_0.8.4 plyr_1.4 gplots_2.8.0 caTools_1.11 bitops_1.0-4.1 [11] gdata_2.8.1 gtools_2.6.2 siggenes_1.24.0 multtest_2.7.1 Rgraphviz_1.29.0 [16] xtable_1.5-6 annotate_1.28.1 GO.db_2.4.5 biomaRt_2.6.0 GOstats_2.16.0 [21] RSQLite_0.9-4 DBI_0.2-5 graph_1.28.0 Category_2.16.0 AnnotationDbi_1.12.0 [26] Biobase_2.10.0 loaded via a namespace (and not attached): [1] MASS_7.3-11 RBGL_1.26.0 RCurl_1.5-0 XML_3.2-0 genefilter_1.32.0 survival_2.36-5 [7] tools_2.12.2 [[alternative HTML version deleted]]
go • 5.4k views
ADD COMMENTlink modified 8.6 years ago by Wolfgang Huber13k • written 8.6 years ago by Assa Yeroslaviz1.4k
Answer: conditional replace column values with values from a different column
0
gravatar for Wolfgang Huber
8.6 years ago by
EMBL European Molecular Biology Laboratory
Wolfgang Huber13k wrote:
Hi Assa bp_subset$Term = with(bp_subset, ifelseis.na(Term), Term2, Term)) The 'with' is tangential and could be omitted if you prefer to spell out the 'bp_subset$' three times. Wolfgang Il Apr/8/11 9:48 AM, Assa Yeroslaviz ha scritto: > Hi R Users, > > I have a data.frame with various NAs (df name is 'bp_subset'): > GOBPIDPvalueTermPvalue2Term2 1GO:00000414.991241e-03transition metal ion > transport0.0305047593transition metal ion transport 2GO:0000103NANA > 0.0475575125sulfate assimilation 3GO:0000904NANA0.0211635899cell > morphogenesis involved in differentiation > 4GO:0001505NANA0.0314384424regulation > of neurotransmitter levels 5GO:0001508NANA0.0017933627regulation of action > potential 6GO:00016594.018995e-02temperature homeostasisNANA > I would like tobe abale to replace the 'NA' values of the column "Term", > with the values of column "Term2" (if they are not 'NA') > I tried to do it with an if statement, but it doesn't work correctly. > >> if is.na(bp_subset[,3])) > bp_subset[,3]<- bp_subset[,5]Warning message:In if > is.na(bp_subset[, 3])) bp_subset[, 3]<- bp_subset[, 5] : > the condition has length> 1 and only the first element will be used > > I also tried to do something like: > > bp_subset_test[is.na(bp_subset_test$Term)]<- bp_subset_test$Term2 > Error in `[<-.data.frame`(`*tmp*`, is.na(bp_subset_test$Term), value = > c("transition metal ion transport", : > duplicate subscripts for columns > > > Is there another way of doing it? > > THX, > > Assa > > >> sessionInfo()R version 2.12.2 (2011-02-25) > Platform: x86_64-pc-linux-gnu (64-bit) > > locale: > [1] C > > attached base packages: > [1] splines grid stats graphics grDevices utils > datasets methods base > > other attached packages: > [1] GSEABase_1.12.1 org.Mm.eg.db_2.4.6 Heatplus_1.20.0 > ggplot2_0.8.9 proto_0.3-9.1 > [6] reshape_0.8.4 plyr_1.4 gplots_2.8.0 > caTools_1.11 bitops_1.0-4.1 > [11] gdata_2.8.1 gtools_2.6.2 siggenes_1.24.0 > multtest_2.7.1 Rgraphviz_1.29.0 > [16] xtable_1.5-6 annotate_1.28.1 GO.db_2.4.5 > biomaRt_2.6.0 GOstats_2.16.0 > [21] RSQLite_0.9-4 DBI_0.2-5 graph_1.28.0 > Category_2.16.0 AnnotationDbi_1.12.0 > [26] Biobase_2.10.0 > > loaded via a namespace (and not attached): > [1] MASS_7.3-11 RBGL_1.26.0 RCurl_1.5-0 XML_3.2-0 > genefilter_1.32.0 survival_2.36-5 > [7] tools_2.12.2 > > [[alternative HTML version deleted]] > > _______________________________________________ > Bioconductor mailing list > Bioconductor at r-project.org > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor -- Wolfgang Huber EMBL http://www.embl.de/research/units/genome_biology/huber
ADD COMMENTlink written 8.6 years ago by Wolfgang Huber13k
Hi Assa, Wolfgang, On 11-04-08 01:06 AM, Wolfgang Huber wrote: > Hi Assa > > bp_subset$Term = with(bp_subset, ifelseis.na(Term), Term2, Term)) > > The 'with' is tangential and could be omitted if you prefer to spell out > the 'bp_subset$' three times. Or slightly faster: idx <- whichis.na(bp_subset$Term)) bp_subset$Term[idx] <- bp_subset$Term2[idx] H. > > Wolfgang > > Il Apr/8/11 9:48 AM, Assa Yeroslaviz ha scritto: >> Hi R Users, >> >> I have a data.frame with various NAs (df name is 'bp_subset'): >> GOBPIDPvalueTermPvalue2Term2 1GO:00000414.991241e-03transition metal ion >> transport0.0305047593transition metal ion transport 2GO:0000103NANA >> 0.0475575125sulfate assimilation 3GO:0000904NANA0.0211635899cell >> morphogenesis involved in differentiation >> 4GO:0001505NANA0.0314384424regulation >> of neurotransmitter levels 5GO:0001508NANA0.0017933627regulation of >> action >> potential 6GO:00016594.018995e-02temperature homeostasisNANA >> I would like tobe abale to replace the 'NA' values of the column "Term", >> with the values of column "Term2" (if they are not 'NA') >> I tried to do it with an if statement, but it doesn't work correctly. >> >>> if is.na(bp_subset[,3])) >> bp_subset[,3]<- bp_subset[,5]Warning message:In if >> is.na(bp_subset[, 3])) bp_subset[, 3]<- bp_subset[, 5] : >> the condition has length> 1 and only the first element will be used >> >> I also tried to do something like: >> >> bp_subset_test[is.na(bp_subset_test$Term)]<- bp_subset_test$Term2 >> Error in `[<-.data.frame`(`*tmp*`, is.na(bp_subset_test$Term), value = >> c("transition metal ion transport", : >> duplicate subscripts for columns >> >> >> Is there another way of doing it? >> >> THX, >> >> Assa >> >> >>> sessionInfo()R version 2.12.2 (2011-02-25) >> Platform: x86_64-pc-linux-gnu (64-bit) >> >> locale: >> [1] C >> >> attached base packages: >> [1] splines grid stats graphics grDevices utils >> datasets methods base >> >> other attached packages: >> [1] GSEABase_1.12.1 org.Mm.eg.db_2.4.6 Heatplus_1.20.0 >> ggplot2_0.8.9 proto_0.3-9.1 >> [6] reshape_0.8.4 plyr_1.4 gplots_2.8.0 >> caTools_1.11 bitops_1.0-4.1 >> [11] gdata_2.8.1 gtools_2.6.2 siggenes_1.24.0 >> multtest_2.7.1 Rgraphviz_1.29.0 >> [16] xtable_1.5-6 annotate_1.28.1 GO.db_2.4.5 >> biomaRt_2.6.0 GOstats_2.16.0 >> [21] RSQLite_0.9-4 DBI_0.2-5 graph_1.28.0 >> Category_2.16.0 AnnotationDbi_1.12.0 >> [26] Biobase_2.10.0 >> >> loaded via a namespace (and not attached): >> [1] MASS_7.3-11 RBGL_1.26.0 RCurl_1.5-0 XML_3.2-0 >> genefilter_1.32.0 survival_2.36-5 >> [7] tools_2.12.2 >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> Bioconductor mailing list >> Bioconductor at r-project.org >> https://stat.ethz.ch/mailman/listinfo/bioconductor >> Search the archives: >> http://news.gmane.org/gmane.science.biology.informatics.conductor > -- Hervé Pagès Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M2-B876 P.O. Box 19024 Seattle, WA 98109-1024 E-mail: hpages at fhcrc.org Phone: (206) 667-5791 Fax: (206) 667-1319
ADD REPLYlink written 8.6 years ago by Hervé Pagès ♦♦ 14k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 292 users visited in the last hour