Indicator in variable-conditioned R with duplicate values

Asked

Viewed 80 times

3

Suppose there is a basis with two variables as follows:

Município   IF
RIOBOM  Cooperativa
RIOBOM  Cooperativa
ABADIA  Múltiplo
ABADIA  Múltiplo
ABADIA  Cooperativa
ABADIA  Banco
DOURADOS    Banco
DOURADOS    Múltiplo
DOURADOS    Banco
DOURADOS    Cooperativa
DOURADOS    Múltiplo

To create an indicator that marks only those municipalities that have only "cooperative", independent of having "cooperative" and "bank" or "multiple", it is necessary to have only "cooperative" in the IF variable. Resulting in the following basis:

Município   IF  Indicador
RIOBOM  Cooperativa 1
RIOBOM  Cooperativa 1    
ABADIA  Múltiplo    0
ABADIA  Múltiplo    0
ABADIA  Cooperativa 0
ABADIA  Banco   0
DOURADOS    Banco   0
DOURADOS    Múltiplo    0
DOURADOS    Banco   0
DOURADOS    Cooperativa 0
DOURADOS    Múltiplo    0

I believe the dplyr package works in such a case.

2 answers

3

Now that it’s answered and accepted it may not matter but here it goes.
Only with R base, we can use ave.

df$Indicador <- as.integer(ave(df$IF, df$Município, FUN = function(x)
                    all(tolower(x) == "cooperativa")) == "TRUE")

2


I don’t know if there is a more direct way, but the code below solves your problem.

library(dplyr)
df %>% 
  group_by(Município) %>% 
  mutate(Indicador = ifelse(IF == "Cooperativa", 1, 2)) %>% 
  mutate(Indicador = ifelse(mean(Indicador) != 1, 0, 1))
  • That’s exactly what it was!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.