[R] Assignment problems

phillip03 phillipbrigham at hotmail.com
Sun Apr 22 20:54:17 CEST 2012


The text below is a part of, some work I have to do, which is due in 2 days
and I am strung up with a lot of other stuff, so I was hoping someone would
take 5 mins and help me ??

Here is a part of my data.frame:

     year country1 country2 contig comlang        pop1        gdp1       
pop2         gdp2 rta    dist      avgflow
1    1992      AUS      AUT      0       0  17.4950008  321708.281  
7.7825189   194684.078   0 15608.4 1.075999e+02
2    1992      AUS      BEL      0       0  17.4950008  321708.281 
10.0450001   231762.094   0 16319.2 4.767162e+02
3    1992      AUS      CAN      0       1  17.4950008  321708.281 
28.5195980   570291.188   0 15391.1 7.456945e+02
4    1992      AUS      CHE      0       0  17.4950008  321708.281  
6.8750000   249471.422   0 16170.1 4.625214e+02
5    1992      AUS      DEU      0       0  17.4950008  321708.281 
80.6240005  2062141.500   0 15935.1 2.047573e+03
6    1992      AUS      DNK      0       0  17.4950008  321708.281  
5.1700001   150195.484   0 15725.5 1.453406e+02
7    1992      AUS      ESP      0       0  17.4950008  321708.281 
39.0677490   612585.250   0 17072.9 2.106880e+02
8    1992      AUS      FIN      0       0  17.4950008  321708.281  
5.0419998   109859.438   0 14849.5 2.025125e+02
9    1992      AUS      FRA      0       0  17.4950008  321708.281 
57.2422981  1371706.000   0 16513.0 1.070802e+03
10   1992      AUS      GBR      0       1  17.4950008  321708.281 
57.9023476  1071537.375   0 16602.3 2.279130e+03
11   1992      AUS      GRC      0       0  17.4950008  321708.281 
10.3699999   102022.352   0 14845.6 4.164985e+01
12   1992      AUS      IRL      0       1  17.4950008  321708.281  
3.5490999    54272.410   0 16895.0 1.076323e+02
13   1992      AUS      ISL      0       0  17.4950008  321708.281  
0.2611000     6976.168   0 16443.6 2.190602e+01
14   1992      AUS      ITA      0       0  17.4950008  321708.281 
56.7976494  1265800.125   0 15855.4 9.683720e+02
15   1992      AUS      JPN      0       0  17.4950008  321708.281
124.2289963  3766884.000   0  7827.1 1.026065e+04
16   1992      AUS      NLD      0       0  17.4950008  321708.281 
15.1780005   348224.562   0 16227.5 6.510009e+02
17   1992      AUS      NOR      0       0  17.4950008  321708.281  
4.2863998   127170.328   0 15646.2 9.357240e+01
18   1992      AUS      NZL      0       1  17.4950008  321708.281  
3.5316999    40706.199   1  2736.4 2.267670e+03
19   1992      AUS      PRT      0       0  17.4950008  321708.281  
9.9630003   102890.258   0 17625.3 2.611476e+02
20   1992      AUS      SWE      0       0  17.4950008  321708.281  
8.6680002   264822.875   0 15385.4 4.653388e+02


there is 3400 observations.

3.1.1. Construct a dummy variable, EMU, that in any given year takes the
value 1 if both countries are members of the EMU and 0 otherwise. How big a
proportion of the observations are among EMU member countries?

This problem is solved with:
 euro<-c("AUT","BEL","DEU","ESP","FIN","FRA","GRC","IRL","ITA","NLD","PRT")
 countries<-data.frame(country1,country2,stringsAsFactors=FALSE)
 data1<-cbind(data,EMU=Reduce(`&`, lapply(countries, function(x) x %in%
euro)))
 
 data1[EMU==TRUE,13]

 a<-table(EMU)


3.1.2. Are the member and non-member country-pairs alike? 

What I need here is:
I want to find the mean of avgflow, but only for the data where 2 countries
are in the euro vector/if EMU=TRUE ?
I have tried with:
>avgflowONLY<-cbind(avgflow,EMU)

> NEWavgflow<-rep(0,nrow(avgflowONLY))

> for (i in 1:nrow(avgflowONLY)){if
> (EMU==1){NEWavgflow[i]<-mean(avgflow[i])}}

BUT it gives me: 
Warning messages:
1: In if (EMU == 1) { ... :
  the condition has length > 1 and only the first element will be used
etc. ???


--
View this message in context: http://r.789695.n4.nabble.com/Assignment-problems-tp4578672p4578672.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list