Wait so basically you want to merge the two data sets on some key value? On Tue, Mar 30, 2010 at 12:30 PM, Muting Zhang <mt208...@dal.ca> wrote:
> hello all: > > I would like to thank those who helped me out of the string problem..but > now I got another problem. > I used R to query from SQL and got a list of crsp_fundno of G-style mutual > funds which is still alive. I use the following codes and got what I want: > > library(RODBC) > channel<-odbcConnect("CRSPFUND") > g.crspfundno<-sqlQuery(channel,"select crsp_fundno from Fund_style where > wbrger_obj_cd = 'G'order by crsp_fundno") > g.crspfundno (got crsp_fundno of G-style fund from Fund_style table) > y.crspfundno<-sqlQuery(channel,"select crsp_fundno from Fund_hdr where > dead_flag > = 'N'and end_dt=20091231 order by crsp_fundno") > y.crspfundno (got crsp_fundno of still alive fund from Fund_hdr table) > g$key<-paste(g.crspfundno$crsp_fundno) > y$key<-paste(y.crspfundno$crsp_fundno) > v.fundno<-intersect(g$key,y$key) (using intersect to get crsp_fundno of > G-style > mutual funds which is still alive.) > v.fundno > > What i need to do next is using the v.fundno I got to query from another > table > "Monthly_return" to get the mret coresponding to every v.fundno. > I have only a basic idea of the code: > for (i in 1:length(v.fundno)){ > gmret<-sqlQuery(channel,paste("select mret from Monthly_returns where > crsp_fundno =",test[i],'and caldt > 19900630 order by caldt')) > } > > The loop doesn't work:( I realize it might be the problem that I didnt > define the dataframe, but my limited knowledge cant help me find out how.. > > I will give you guys a example of my data: > head(v.fundno) > test<-head(v.fundno) > test > [1] "2899" "2903" "2960" "3094" "3095" "3211" > If I dont do the loop and query for one fund say 2899, > gmret.2899<-sqlQuery(channel,"select caldt, mret from Monthly_returns where > crsp_fundno = 2899 and caldt > 19900630 order by caldt") > gmret.2899 > It will give me what I want: > sample2899<-head(gmret.2899) > sample2899 > caldt mret > 1 19900731 0.014204546 > 2 19900831 -0.050420168 > 3 19900928 -0.039823009 > 4 19901031 0.006144393 > 5 19901130 0.054961832 > 6 19901231 0.019632639 > > Can anybody help me with the loop? > Thanks a lot > > Muting > > ______________________________________________ > 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. > [[alternative HTML version deleted]] ______________________________________________ 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.