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 <MT208071@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]]