Quantcast
Channel: Active questions tagged r - Stack Overflow
Viewing all articles
Browse latest Browse all 201839

Add multiple columns with dplyr and fill cells based on condition

$
0
0

I am trying to:

1) add multiple columns that correspond to existing columns (e.g., a1 exists and add a1_yes).

2) Next, if a given cell contains 1:3, put 1 in a#_yes column, otherwise, put 0.

I can easily to this with base R but I'm trying to also make it work with dplyr.

My data:

df <- data.frame(a1 = c(1, 2, 0, NA, NA),
                 a2 = c(NA, 1, 2, 3, 3))

With base R:

df[paste0("a", 1:2, "_yes")] <- NA  # add columns       
for(c in 1:2) {
      for(r in 1:nrow(df)) {
      ifelse(df[r,c] %in% c(1,2,3), df[r,c+2] <- 1,df[r,c+2] <-  0) 
      }
    }
    > df
      a1 a2 a1_yes a2_yes
    1  1 NA      1      0
    2  2  1      1      1
    3  0  2      0      1
    4 NA  3      0      1
    5 NA  3      0      1

Thank you


Viewing all articles
Browse latest Browse all 201839

Trending Articles