dplyr Ganti nilai di beberapa variabel

Saya perlu mengganti non-4 dengan 80 di kolom silinder, roda gigi, karbohidrat. Saya mencoba yang berikut ini, tetapi tidak berhasil.

mtcars %>% mutate_at(vars(cyl, gear, carb), replace(which(.!=4), 80))

Itu menimbulkan kesalahan berikut:

Error in replace(which(. != 4), 80) : 
  argument "values" is missing, with no default

Apa yang kulewatkan di sini?


person Geet    schedule 30.05.2018    source sumber


Jawaban (1)


Anda perlu meneruskan fungsi atau rumus ke mutate_at sebagai argumen kedua:

mtcars %>% mutate_at(vars(cyl, gear, carb), ~ replace(., which(.!=4), 80))

Atau buat fungsi menggunakan funs:

mtcars %>% mutate_at(vars(cyl, gear, carb), funs(replace(., which(.!=4), 80)))
person Psidom    schedule 30.05.2018
comment
Mengerti. Fantastis! Terima kasih! - person Geet; 31.05.2018