Como atribuir valores a uma coluna para um subconjunto de linhas do quadro de dados

Eu tenho um quadro de dados grande e estou tentando atribuir valores a uma coluna de dados específica para subconjuntos específicos.

subset(P2Y12R_binding_summary,(SYSTEM=="4NTJ")&(VARIANT=="D294N"))
  SYSTEM VARIANT  MODEL EPSIN INP dE_water_free dE_ERR_water_free dE_water_periodic dE_ERR_water_periodic
1   4NTJ   D294N LVLSET     1   1       -42.155          29.28460           -42.205              29.52604
2   4NTJ   D294N LVLSET     1   2       -34.225          29.75176           -34.235              29.96571
3   4NTJ   D294N LVLSET    20   1       -65.163          40.62241           -65.163              40.52564
4   4NTJ   D294N LVLSET    20   2       -57.454          41.04459           -57.454              41.26962
5   4NTJ   D294N    SES     1   1       -23.406          30.56636           -23.335              30.75794
6   4NTJ   D294N    SES     1   2       -15.434          30.70035           -15.414              30.85944
7   4NTJ   D294N    SES    20   1       -64.351          40.65919           -64.350              40.51345
8   4NTJ   D294N    SES    20   2       -56.342          41.23456           -56.542              41.21865

Agora, suponha que eu adicione uma nova coluna ao quadro (Ki_expt) usando

P2Y12R_binding_summary$Ki_expt <- 0

E eu quero atualizar valores para esta coluna apenas para as linhas correspondentes ao subconjunto acima.

A tentativa da abordagem ingênua falha:

>subset(P2Y12R_binding_summary,(SYSTEM=="4NTJ")&(VARIANT=="D294N"))$Ki_expt = 42.2

ou

>subset(P2Y12R_binding_summary,(SYSTEM=="4NTJ")&(VARIANT=="D294N"))$Ki_expt <- 42.2

Ambos produzem a mensagem de erro:

Error in subset(P2Y12R_binding_summary, (SYSTEM == "4NTJ") & (VARIANT ==  : 
could not find function "subset<-"

Alguém sabe a maneira apropriada de fazer isso? Obviamente, seria possível com um loop for, mas isso parece bastante desajeitado e provavelmente seria bem lento (como a experiência anterior parece mostrar).

questionAnswers(1)

yourAnswerToTheQuestion