Заменить строки во фрейме данных на основе критериев

У меня есть следующий кадр данных

   id f1 f2
1  a  1  3
2  b  3  5
3  c  4  7

Я хотел бы заменить все строки, которые имеют f1 & gt; 3, на строку (id = x, f1 = 0, f2 = 0) Таким образом, вышеприведенный

   id f1 f2
1  a  1  3
2  b  3  5
3  x  0  0

Но когда я пытался

replace(x,which(x$f1>3),data.frame(id = 'x',f1=0,f2=0))

Он не сделал это правильно, он дал

   id f1 f2
1  a  1  x
2  b  3  x
3  c  4  x
Warning message:
In `[<-.data.frame`(`*tmp*`, list, value = list(id = 1L, f1 = 0,  :
  provided 3 variables to replace 1 variables

Может ли кто-нибудь предложить способ сделать это в масштабе? Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос