Modify multiple columns at same time in R

I don't know how to say it clearly, that is maybe why i did not find the answer, but i want to edit the values of two different columns at the same time, while they are the identifying columns.

For example this is the data :

> data = data.frame(name1 = c("John","Jake","John","Paul"),
           name2 = c("Paul", "Paul","John","John"),
           value1 = c(0,0,1,0),
           value2 = c(1,0,1,0))
> data
  name1 name2 value1 value2
1  John  Paul      0      1
2  Jake  Paul      0      0
3  John  John      1      1
4  Paul  John      0      0

I would like to edit the values of the first row so the first row become Jake & John instead of John & Paul, and so i would like to combine these two lines of code for doing it at the same time :

data$name1[(data$name1 == "John" & data$name2 == "Paul")] <- "Jake"
data$name2[(data$name1 == "John" & data$name2 == "Paul")] <- "John"

Should be a simple trick but i dont have it ! Also, i should do that on larger datasets each modification can appear on multiple lines, and i cant know on which rows will be the modification


Solution 1:

How about this ?

data[data$col1 == "A" & data$col2 == "B", ] <- list("B", "D")
data

#  col1 col2
#1    B    D
#2    A    C
#3    B    A
#4    B    B