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 <drjimle...@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 <farad...@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@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@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. ______________________________________________ R-help@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.