2015-01-18 24 views
47

Tôi thường xuyên cần phải thay đổi các giá trị của một biến dựa trên các giá trị trên một biến khác nhau, như thế này:Thay đổi giá trị của biến với dplyr

mtcars$mpg[mtcars$cyl == 4] <- NA 

tôi đã cố gắng làm điều này với dplyr nhưng thất bại thảm hại:

mtcars %>% 
mutate(mpg = mpg == NA[cyl == 4]) %>% 
as.data.frame() 

Tôi làm cách nào để thực hiện việc này với dplyr?

+15

Không thể tin rằng tôi đã mất 5 năm mà không biết 'thay thế 'tồn tại. Bạn muốn thay đổi điều đó thành câu trả lời? – luciano

Trả lời

118

Chúng tôi có thể sử dụng replace để thay đổi các giá trị trong 'mpg' thành NA tương ứng với cyl==4.

mtcars %>% 
    mutate(mpg=replace(mpg, cyl==4, NA)) %>% 
    as.data.frame() 
Các vấn đề liên quan