Dio Agus Nofrizal
Dio Agus Nofrizal

Reputation: 27

How to change value with condition dataframe in r?

I have dataframe something like:

myData <-  User X Y Similar
            A   1 4   100
            A   1 2   100
            A   1 1   100
            A   3 2   80
            A   2 1   20
            A   2 4   100 
            B   3 1   50
            B   4 2   90
            B   1 3   100 

To something like this:

myData <-  User X Y Similar 
            A   1 4   0
            A   1 2   0
            A   1 1   0
            A   3 2   80
            A   2 1   20
            A   2 4   100 
            B   3 1   50
            B   4 2   90
            B   1 3   0

Question

I want to change value in similar column to 0 with condition. The condition is if variable x = 1 and variable similar = 100. How to do that in r? Thanks

Upvotes: 0

Views: 63

Answers (1)

akrun
akrun

Reputation: 887681

We create a logical vector based on the 'X' and 'Similar' and do the assignment of 'Similar with that index to replace those values to 0

i1 <- with(myData, X ==1 & Similar == 100)
myData$Similar[i1] <- 0

-output

myData
#  User X Y Similar
#1    A 1 4       0
#2    A 1 2       0
#3    A 1 1       0
#4    A 3 2      80
#5    A 2 1      20
#6    A 2 4     100
#7    B 3 1      50
#8    B 4 2      90
#9    B 1 3       0

data

myData <- structure(list(User = c("A", "A", "A", "A", "A", "A", "B", "B", 
"B"), X = c(1L, 1L, 1L, 3L, 2L, 2L, 3L, 4L, 1L), Y = c(4L, 2L, 
1L, 2L, 1L, 4L, 1L, 2L, 3L), Similar = c(100L, 100L, 100L, 80L, 
20L, 100L, 50L, 90L, 100L)), class = "data.frame", row.names = c(NA, 
-9L))

Upvotes: 1

Related Questions