web-dev-qa-db-fra.com

Comment mettre à jour les valeurs avec dplyr

J'essaie actuellement de mettre à jour les valeurs d'un data.frame en utilisant dplyr mais je ne sais pas s'il est possible de remplacer un sous-ensemble de valeurs?

# the net4 table
head(net4)
Source: local data frame [6 x 4]

  temps2 NNET NET ave
1     18    2   4  36
2     18    2   4  36
3     22    2   4  44
4     18    2   4  36
5     22    2   4  44
6     27    3   4  36

# I would like to do the same command line as below:
subs <- (net4$ave < 10 & net4$ave!=net4$temps2)
net4$ave[subs] <- with(net4[subs,], temps2/NNET*NET)

Merci

36
droopy

Utilisez mutate et ifelse

mutate(net4,
  ave = ifelse(ave < 10 & ave != temp2, temps2 / NNET * NET, ave)
)
49
hadley