[R] How to create these variables in R?
Duncan Murdoch
murdoch.duncan at gmail.com
Tue Jun 28 13:50:23 CEST 2016
On 28/06/2016 7:34 AM, Faradj Koliev wrote:
> Dear all,
>
> Let’s say that I have a dataset that looks something like this:
>
>
> Subject Year A
> A 1990 1
> A 1991 1
> A 1992 1
> A 1993 1
> A 1994 0
> A 1995 0
> B 1990 1
> B 1991 0
> B 1992 1
> B 1993 1
> C 1991 1
> C 1992 1
> C 1993 0
> C 1994 1
> D 1991 0
> D 1992 1
> D 1993 1
> D 1994 0
> D 1995 0
> D 1996 1
> D 1997 1
>
>
> What I would like to do is to create the following three new variables: A1, A2, and A3
> The variable A1 should capture/count all 1’s in the variable A that are in a row (counting), for each subject-year – but it should restart counting if there
> are two 0’s in a row (displayed
> below).
>
> The variable A2 should capture 1-2’s (range) in the A1. Displayed in the example below.(subject-year)
>
> The variable A3 should capture all values in the variable A1 that are more than 2, also displayed in the example data below.(subject-year)
A1 has a pretty complicated definition. There's likely a vectorized way
to write it, but it won't be easy to read. I'd just use a loop. Your
rules are a little ambiguous (are 0 and 1 the only possible values?) so
I won't try, but it should be straightforward for you to write the loop.
A2 and A3 are easy:
A2 <- as.numeric(A1 %in% 1:2)
A3 <- as.numeric(A1 > 2)
Duncan Murdoch
>
>
> See the example below for illustration of these variables
>
>
> Subject Year A A1 A2 A3
> A 1990 1 1 1 0
> A 1991 1 2 1 0
> A 1992 1 3 0 1
> A 1993 1 4 0 1
> A 1994 0 0 0 0
> A 1995 0 0 0 0
> B 1990 1 1 1 0
> B 1991 0 1 1 0
> B 1992 1 2 1 0
> B 1993 1 3 0 1
> C 1991 1 1 1 0
> C 1992 1 2 1 0
> C 1993 0 2 1 0
> C 1994 1 3 0 1
> D 1991 0 0 0 0
> D 1992 1 1 1 0
> D 1993 1 2 1 0
> D 1994 0 0 0 0
> D 1995 0 0 0 0
> D 1996 1 1 1 0
> D 1997 1 2 1 0
>
>
> I’ve no clue where to start at this stage –I’d appreciate any suggestions and help.
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
>
More information about the R-help
mailing list