I have a question regarding how to craft a variable depending on two other variables. I need to create a dummy variable that will take the value of 1 if
Parameter1
is either A or B (but not C) and Parameter2
has a positive value. The variable needs both assumptions to upheld, otherwise will take the value of zero. This will be categorized by countries.
I have tried to illustrate this down below. What I am looking for is how to compute a variable that calculates the variable 'Result'.
read.table(
text =
"Country, Year, Parameter1, Parameter2, Result,
US, 1, A, 12, 1,
US, 2, B, 4, 1,
US, 3, C, 2, 0,
US, 4, A, -4, 0,
UK, 1, A, -1, 0,
UK, 2, C, 2, 0,
UK, 3, B, 3, 1,
UK, 4, B, 2, 1, ", sep = ",", header = TRUE)
Country | Year | Parameter1 | Parameter2 | Result | |
---|---|---|---|---|---|
1 | US | 1 | A | 12 | 1 |
2 | US | 2 | B | 4 | 1 |
3 | US | 3 | C | 2 | 0 |
4 | US | 4 | A | -4 | 0 |
5 | UK | 1 | A | -1 | 0 |
6 | UK | 2 | C | 2 | 0 |
7 | UK | 3 | B | 3 | 1 |
8 | UK | 4 | B | 2 | 1 |
We may create the condition with %in%
and &
, coerce the logical to binary with as.integer
or +
df1$Result <- with(df1, +(Parameter1 %in% c("A", "B") & Parameter2 > 0))
df1$Result
[1] 1 1 0 0 0 0 1 1