[R] keep average values and delete duplicate rows

arun smartpink111 at yahoo.com
Sun Oct 28 07:20:08 CET 2012


HI,

I guess it is a bit confusing as to what you want.  In the example dataset, there was no democracy_index, but in the result you want it.  Regarding the median calculation, I guess you want to calculate the median for each country.  I created one more country (China) with fake data.  

May be this helps:
dat1<-read.table(text="
Country  log_GDP yr
Canada 9.115211 1950
Canada 9.205848 1955
Canada 9.247975 1960
Canada 9.429002 1965
Canada 9.554069 1970
Canada 9.719351 1975
Canada 9.851376 1980
Canada 9.937892 1985
Canada 10.01457 1990
Canada 10.04093 1995
Canada 10.20005 2000
USA       9.27824    1950
USA       9.38968    1955
USA       9.415136  1960
USA       9.594625  1965
USA       9.70207    1970
USA       9.800418  1975
USA       9.96813    1980
USA       10.07001  1985
USA       10.18331  1990
USA       10.25446  1995
USA       10.4131    2000
China      7.5       1950
China      7.32      1955
China       7.33  1960
China       7.6  1965
China       7.8    1970
China       8.0   1975
China       8.2    1980
China       8.3  1985
China       8.5  1990
China       8.6  1995
China       8.7    2000   
",sep="",header=TRUE,stringsAsFactors=FALSE)
 dat2<-with(dat1,aggregate(log_GDP,by=list(Country=Country),mean))
colnames(dat2)[2]<-"Mean"
 dat3<-with(dat1,aggregate(log_GDP,by=list(Country=Country),median))
colnames(dat3)[2]<-"Median"
dat4<-merge(dat3,dat2)
dat4$HighIncome<-ifelse(dat4$Mean>dat4$Median,dat4$Country[dat4$Mean>dat4$Median],NA)
 dat4$LowIncome<-ifelse(dat4$Mean>dat4$Median,NA,dat4$Country[!dat4$Mean>dat4$Median])
dat5<-dat4[,-2]
dat5
#  Country     Mean HighIncome LowIncome
#1  Canada 9.665116       <NA>    Canada
#2   China 7.986364       <NA>     China
#3     USA 9.824471        USA      <NA>

res<-merge(dat1,dat5)
 head(res)
#  Country  log_GDP   yr     Mean HighIncome LowIncome
#1  Canada 9.115211 1950 9.665116       <NA>    Canada
#2  Canada 9.205848 1955 9.665116       <NA>    Canada
#3  Canada 9.247975 1960 9.665116       <NA>    Canada
#4  Canada 9.429002 1965 9.665116       <NA>    Canada
#5  Canada 9.554069 1970 9.665116       <NA>    Canada
#6  Canada 9.719351 1975 9.665116       <NA>    Canada
A.K.












----- Original Message -----
From: fuckecon <iamstanhu at gmail.com>
To: r-help at r-project.org
Cc: 
Sent: Sunday, October 28, 2012 12:16 AM
Subject: [R] keep average values and delete duplicate rows

Hello experts,

I am sorry that my subject line is confusing, because I am confused as nuts.
Let me take a shot at explaining what I am trying to do.

I have a data set of log GDP, education, democracy index, and a whole bunch
of variables for every country from 1950 to  2000. Each country accounts for
10 observations with each observation representing the mean GDP for each 5
year interval.

Example:

Country  log GDP yr
Canada    9.115211 1950
Canada    9.205848 1955
Canada    9.247975 1960
Canada    9.429002 1965
Canada    9.554069 1970
Canada    9.719351 1975
Canada    9.851376 1980
Canada    9.937892 1985
Canada    10.01457 1990
Canada    10.04093 1995
Canada    10.20005 2000
USA       9.27824    1950
USA       9.38968    1955
USA       9.415136  1960
USA       9.594625  1965
USA       9.70207    1970
USA       9.800418  1975
USA       9.96813    1980
USA       10.07001  1985
USA       10.18331  1990
USA       10.25446  1995
USA       10.4131    2000

For log GDP:

I want to create a new object in R with one line for each country and  the
average log GDP from the 10 5yr interval observations. With the subset I
want to then create a table with 3 columns and 4 rows.

(I have no idea how to write the codes to create the new object. Friend said
something about conditional median.)

Columns
1) All countries
2) High income countries
3) Low income countries

Rows
1) Democracy index
2) Log GDP
3) Obs
4) Countries

To create a high and low income columns, I am using the median as the
boundary. (i.e. high income for gdp > median of the mean for each country,
low income for gdp <= median of the mean for each country.)

I hope someone can understand what I am writing here and help me out with
it.

Thanks so much!





--
View this message in context: http://r.789695.n4.nabble.com/keep-average-values-and-delete-duplicate-rows-tp4647677.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help at 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.





More information about the R-help mailing list