myDf1 <- data.frame(drugs = c("Ibuprofen", "Simvastatin", "Losartan"), indications = c("pain", "hyperlipidemia", "hypertension"), stringsAsFactors = FALSE)
myDf2 <- data.frame(drugs = c("Simvastatin", "Losartan", "Ibuprofen", "Metformin"), stringsAsFactors = FALSE) myDf3 <- merge(myDf2, myDf1, all = TRUE, sort = FALSE) R > myDf3 drugs indications 1 Simvastatin hyperlipidemia 2 Losartan hypertension 3 Ibuprofen pain 4 Metformin <NA> R > str(myDf3) 'data.frame': 4 obs. of 2 variables: $ drugs : chr "Simvastatin" "Losartan" "Ibuprofen" "Metformin" $ indications: chr "hyperlipidemia" "hypertension" "pain" NA ----- Minimum working example! Don't post in HTML! ... you should know better by now. > On May 9, 2017, at 1:21 PM, abo dalash <abo_d...@hotmail.com> wrote: > > I'm repeating my question and hope to find someone to help. > > > I have been trying for hours but without results, I have done previous > suggestions but still struggling. > > > I believe that join functions in dplyr will do the work but I'm confusing > with the correct syntax. > > > I have 2 tables and I'm trying to have some information from the 1st table to > appear in the 2nd table. > > > let's say this is my 1st table :- > > >> df1 > Drug name indications > > Ibuprofen Pain > > Simvastatin hyperlipidemia > > losartan hypertension > > > > my 2nd table contains the same list of drugs under the first column BUT with > different order :- > >> df2 > Drug name indications > > > Simvastatin > > losartan > > Ibuprofen > > Metformin > > Simply, I want to produce a table like df1 but in the order of the 1st column > of my df2. > > This would be like this > >> joined tables > Drug name indications > > > Simvastatin hyperlipidemia > > losartan hypertension > > Ibuprofen pain > > Metformin N/A > > > Please note that it is important to keep the order of drugs in df2 as it and > to see the appropriate indication of each drug(which is withdrawn from df1) > next to it under "indications" column. > > > > ________________________________ > From: Ulrik Stervbo <ulrik.ster...@gmail.com> > Sent: 09 May 2017 06:31 PM > To: abo dalash > Subject: Re: [R] Joining tables with different order and matched values > > Hi Abo, > > Please keep the list in cc - 1) the comments are accessible to everyone, 2) > there is a chance that someone else might reply. > > If the merge does what you intend, but you are unhappy with the order, you > can arrange the resulting data.frame: > > df <- data.frame(x = c(5, 4,2,3,6, 1), y = letters[1:6]) > > df > df[order(df$x), ] > > HTH > Ulrik > > > > On Tue, 9 May 2017 at 16:17 abo dalash > <abo_d...@hotmail.com<mailto:abo_d...@hotmail.com>> wrote: > > > I still cannot produce the table I wish. I tried the following with the same > results. > > > A <-merge(dt1, dt2, by = "Drug name", all.x = TRUE) > > > A <-join_query(dt1, dt2, by = "Drug name") > > This returns a table showing results with changing the order of drugs in the > 2nd data frame. I want to see the results under > "indications" column without changing the order of drugs in my 2nd data > frame. I have been trying for many hours, so please > help me to know what is the mistake I have done and what is the correct > syntax. > > > Regards > ________________________________ > From: Ulrik Stervbo <ulrik.ster...@gmail.com<mailto:ulrik.ster...@gmail.com>> > Sent: 09 May 2017 12:22 PM > To: abo dalash; R-help > > Subject: Re: [R] Joining tables with different order and matched values > Hi Abo, > > Please keep the list in cc. > > I think the function documentation is pretty straight forward - two > data.frames are required, and if you wish to keep elements that are not > present in both data.frames, you set the flag all = TRUE. You also have the > option to specify which columns to join by. > > If you need more assistance with joining two data.frames, you should provide > a reproducible example, and if you have trouble with a function you should > provide an example of what you have tried so far. > > Best wishes, > Ulrik > > > > On Tue, 9 May 2017 at 10:00 abo dalash > <abo_d...@hotmail.com<mailto:abo_d...@hotmail.com>> wrote: > Could you please teach me about the correct formation of the syntax?. I hav > n but wasn't able to formulate the correct syntax. > > > Sent from my Samsung device > > > -------- Original message -------- > From: Ulrik Stervbo <ulrik.ster...@gmail.com<mailto:ulrik.ster...@gmail.com>> > Date: 09/05/2017 7:42 a.m. (GMT+00:00) > To: abo dalash <abo_d...@hotmail.com<mailto:abo_d...@hotmail.com>>, > "r-help@R-project.org" <r-help@r-project.org<mailto:r-help@r-project.org>> > Subject: Re: [R] Joining tables with different order and matched values > > Hi Abo, > > ?merge > > or the join functions from dplyr. > > HTH > Ulrik > > On Tue, 9 May 2017 at 06:44 abo dalash > <abo_d...@hotmail.com<mailto:abo_d...@hotmail.com>> wrote: > Hi All .., > > > I have 2 tables and I'm trying to have some information from the 1st table to > appear in the second table with different order. > > > For Example, let's say this is my 1st table :- > > > > Drug name indications > > Ibuprofen Pain > > Simvastatin hyperlipidemia > > losartan hypertension > > > > my 2nd table is in different order for the 1st column :- > > > Drug name indications > > > Simvastatin > > losartan > > Ibuprofen > > Metformin > > > I wish to see the indication of each drug in my 2nd table subsisted from the > information in my 1st table so the final table > > would be like this > > > Drug name indications > > > Simvastatin hyperlipidemia > > losartan hypertension > > Ibuprofen pain > > Metformin N/A > > > I have been trying to use Sqldf package and right join function but not able > to formulate the correct syntax. > > > I'm also trying to identify rows contain at least one shared value in a > dataset called 'Values": > > >> Values > > A B > > 1,2,5 3,8,7 > > 2,4,6 7,6,3 > > > > Columns A & B in the first row do not share any value while in the 2nd row > they have a single shared value which is 6. > > The result I wish to see :- > > > A B shared values > > 1,2,5 3,8,7 N/A > > 2,4,6 7,6,3 6 > > > I tried this syntax : SharedValues <- Values$A == Values$B but this returns > logical results and what I wish to have > > is a new data frame including the new vector "shared values" showing the > information exactly as above. > > > > > Kind Regards > > > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org<mailto:R-help@r-project.org> mailing list -- To > UNSUBSCRIBE and more, see > 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@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.