Обновите значение, если два столбца совпадают

#r

Вопрос:

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

 a lt;- c("A1","A1","A2","A2") b lt;- c("B1","B1","B2","B2") val lt;- c(10,20,30,40)  df lt;- data.frame(a,b,val)  

Я хочу заменить значения в «val», когда a = b и » val » должны иметь значение начальной строки

введите описание изображения здесь

Комментарии:

1. Является ли изображение, которое вы предоставили, вашим ожидаемым результатом? Если да, то как? В вашем примере ни один из a и b не равен.

Ответ №1:

Вы можете попробовать

 library(dplyr)  df %gt;%  group_by(a,b) %gt;%  mutate(val = first(val))   a b val  lt;chrgt; lt;chrgt; lt;dblgt; 1 A1 B1 10 2 A1 B1 10 3 A2 B2 30 4 A2 B2 30