Skip to content
Prev 247442 / 398503 Next

transform a df with a condition

Dear all,

for each A == 3 in 'df' I would like to change the variables B and K.
My result should be the whole df and not the subset (A==3)...

df <- data.frame(A = c(1,1,3,2,2,3,3),
                  B = c(2,1,1,2,7,8,7),
                  K = c("a.1", "d.2", "f.3",
                        "a.1", "k.4", "f.9", "f.5"))

x1 <- within(df[df$A ==3, ], {
        B1 <- 5
        K1 <- gsub("f","m", K)
        })

x2 <- transform(df[df$A==3, ], B1 = 5, K1 = gsub("f","m", K))

Thanks for any help!
Patrick