mardi 31 janvier 2017

Ifelse statment across multiple rows

Looking to add a column based on the values of two columns, but over more than one row.

Example Dataset Code:

A = c(1,1,1,2,2,2,3,3,3,4,4)
B = c(1,2,3,1,2,3,1,2,3,1,2)
C = c(0,0,0,1,0,0,1,1,1,0,1)
data <- data.frame(A,B,C)

Dataset:

   A  B  C
1  1  1  0
2  1  2  0
3  1  3  0
4  2  1  1
5  2  2  0
6  2  3  0
7  3  1  1
8  3  2  1
9  3  3  1
10 4  1  0
11 4  2  1 

Ifelse statements:

What I am trying to achieve is "Create column D.If column C == 1 in any row where column A == x, column D = 1. Else column D == 0"

Desired Output:

   A  B  C  D
1  1  1  0  0
2  1  2  0  0
3  1  3  0  0
4  2  1  1  1
5  2  2  0  1
6  2  3  0  1
7  3  1  1  1
8  3  2  1  1
9  3  3  1  1
10 4  1  0  1
11 4  2  1  1

What I've done:

I've thought about it today but can't come up with a logical answer, I've tried looking at the data in long and wide formats but nothings jumped out.

Note: In actual application the number of times x appears in column C is not equal (some contain one repeat in the dataset, others contain 20).

Aucun commentaire:

Enregistrer un commentaire