[R] Capturing positive and negative changes using R

Jeff Newmiller jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Sun Jul 21 02:10:08 CEST 2019


It is possible that part of the original problem was that Fardadj was expecting R to recognise the comma as the decimal and he read in that column as a factor without realizing it. Factors are discrete, not continuous.

He should use the str() function to identify the column types in his data frame.

On July 20, 2019 6:17:19 PM CDT, Jim Lemon <drjimlemon using gmail.com> wrote:
>Hi Faradj,
>Rui's advice is correct, here's a way to do it. Note that I have
>replaced the comma decimal points with full stops for my convenience:
>
>fkdf<-read.csv(text="Year,Country,X1,X2
>1990,United States,0,0.22
>1991,United States,0,0.22
>1992,United States,0,0.22
>1993,United States,0,0.22
>1994,United States,0,0.22
>1995,United States,0,0.22
>1996,United States,0,0.22
>1997,United States,0,0.5
>1998,United States,0,0.5
>1999,United States,0,0.5
>2000,United States,0,0.5
>2001,United States,0,0.5
>2002,United States,2,NA
>2003,United States,2,0.5
>2004,United States,2,1
>2005,United States,1,1
>2006,United States,1,1
>2007,United States,1,1
>2008,United States,1,1
>2009,United States,1,1
>2010,United States,1,0.5
>2011,United States,0,0.5
>1990,Canada,1,1.5
>1991,Canada,1,1.5
>1992,Canada,1,NA
>1993,Canada,1,1.5
>1994,Canada,1,1.5
>1995,Canada,1,1.5
>1996,Canada,1,1.5
>1997,Canada,1,1.5
>1998,Canada,1,2
>1999,Canada,2,2
>2000,Canada,2,2
>2001,Canada,2,2
>2002,Canada,2,2
>2003,Canada,1,2
>2004,Canada,2,0.5
>2005,Canada,1,0.5
>2006,Canada,0,0.5
>2007,Canada,1,0.5
>2008,Canada,0,0.5
>2009,Canada,1,0.5
>2010,Canada,1,0.5
>2011,Canada,0,1",
>header=TRUE,stringsAsFactors=FALSE)
>diffX1<-aggregate(fkdf$X1,by=list(fkdf[,2]),FUN=diff)
>diffX2<-aggregate(fkdf$X2,by=list(fkdf[,2]),FUN=diff)
>diffX1<-data.frame(diffX1$Group.1,diffX1$x)
>diffyears<-unique(fkdf$Year)[-1]
>names(diffX1)<-c("Country",diffyears)
>diffX2<-data.frame(diffX2$Group.1,diffX2$x)
>names(diffX2)<-c("Country",diffyears)
>
>Jim
>
>On Sun, Jul 21, 2019 at 5:34 AM Faradj Koliev <faradj.g using gmail.com>
>wrote:
>>
>> Dear R-users,
>>
>> I have a country-year data for 180 countries from 1970 to 2010. I’m
>interested in capturing positive and negative changes in some of the
>variables. Some of these variables are continuous (0,25, 0,33, 1, 1,5
>etc) others are ordered (0,1, 2).
>>
>> To do this, I use this code data$X1_change<- +c(FALSE,diff(data$X1))
>>
>> My data looks something like this (please see below).
>>
>> There’re some problems with this code:  (1) I can’t capture the
>smaller changes, say from 0,25 to 0,33 ( I get weird numbers). I would
>love to get the exact difference ( for ex: +1, -0,22, +4, -2 etc).  (2)
>It can’t make difference between countries. That is, it takes the
>difference between countries while it should only do this for each
>country ( for ex: when the US ends in 2011, and Canada starts, it
>counts this a difference but it shouldn’t, see below). (3) NAs, missing
>values, is neither a positive or negative change, although it does
>think that what comes after the NA is a difference.
>>
>>  So, I wonder if anyone here can help me to adjust this code. I
>appreciate all comments.
>>
>>
>> Year
>> Country
>> X1
>> X2
>> 1990
>> United States
>> 0
>> 0,22
>> 1991
>> United States
>> 0
>> 0,22
>> 1992
>> United States
>> 0
>> 0,22
>> 1993
>> United States
>> 0
>> 0,22
>> 1994
>> United States
>> 0
>> 0,22
>> 1995
>> United States
>> 0
>> 0,22
>> 1996
>> United States
>> 0
>> 0,22
>> 1997
>> United States
>> 0
>> 0,5
>> 1998
>> United States
>> 0
>> 0,5
>> 1999
>> United States
>> 0
>> 0,5
>> 2000
>> United States
>> 0
>> 0,5
>> 2001
>> United States
>> 0
>> 0,5
>> 2002
>> United States
>> 2
>> NA
>> 2003
>> United States
>> 2
>> 0,5
>> 2004
>> United States
>> 2
>> 1
>> 2005
>> United States
>> 1
>> 1
>> 2006
>> United States
>> 1
>> 1
>> 2007
>> United States
>> 1
>> 1
>> 2008
>> United States
>> 1
>> 1
>> 2009
>> United States
>> 1
>> 1
>> 2010
>> United States
>> 1
>> 0,5
>> 2011
>> United States
>> 0
>> 0,5
>> 1990
>> Canada
>> 1
>> 1,5
>> 1991
>> Canada
>> 1
>> 1,5
>> 1992
>> Canada
>> 1
>> NA
>> 1993
>> Canada
>> 1
>> 1,5
>> 1994
>> Canada
>> 1
>> 1,5
>> 1995
>> Canada
>> 1
>> 1,5
>> 1996
>> Canada
>> 1
>> 1,5
>> 1997
>> Canada
>> 1
>> 1,5
>> 1998
>> Canada
>> 1
>> 2
>> 1999
>> Canada
>> 2
>> 2
>> 2000
>> Canada
>> 2
>> 2
>> 2001
>> Canada
>> 2
>> 2
>> 2002
>> Canada
>> 2
>> 2
>> 2003
>> Canada
>> 1
>> 2
>> 2004
>> Canada
>> 2
>> 0,5
>> 2005
>> Canada
>> 1
>> 0,5
>> 2006
>> Canada
>> 0
>> 0,5
>> 2007
>> Canada
>> 1
>> 0,5
>> 2008
>> Canada
>> 0
>> 0,5
>> 2009
>> Canada
>> 1
>> 0,5
>> 2010
>> Canada
>> 1
>> 0,5
>> 2011
>> Canada
>> 0
>> 1
>>         [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help using 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 using 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.

-- 
Sent from my phone. Please excuse my brevity.



More information about the R-help mailing list