lundi 20 avril 2020

how to add prefix in selected rows according to the last row in R

I have a dataframe like this:

 Target Time ...
  pa     1   
  pa     2
  pa     3
  pa     4
  pa     5
  pa     6
  pa     7
  pa     8
  pa     9
  pa     10
  li     11
  li     12
  li     13
  li     14
  li     15
  li     16
  li     17
  li     18
  li     19
  li     20
  ka     1   
  ka     2
  ka     3
  ka     4
  ka     5
  ka     6
  ka     7
  ka     8
  ka     9
  ka     10
  li     11
  li     12
  li     13
  li     14
  li     15
  li     16
  li     17
  li     18
  li     19
  li     20
  pha     1   
  pha     2
  pha     3
  pha     4
  pha     5
  pha     6
  pha     7
  pha     8
  pha     9
  pha     10
  le     11
  le     12
  le     13
  le     14
  le     15
  le     16
  le     17
  le     18
  le     19
  le     20
..."

And I want to add a prefix before the targets from 11~20 based on the targets from 1~10. What I wish is :

 Target Time ...
  pa     1   
  pa     2
  pa     3
  pa     4
  pa     5
  pa     6
  pa     7
  pa     8
  pa     9
  pa     10
  pa_li     11
  pa_li     12
  pa_li     13
  pa_li     14
  pa_li     15
  pa_li     16
  pa_li     17
  pa_li     18
  pa_li     19
  pa_li     20
  ka     1   
  ka     2
  ka     3
  ka     4
  ka     5
  ka     6
  ka     7
  ka     8
  ka     9
  ka     10
  ka_li     11
  ka_li     12
  ka_li     13
  ka_li     14
  ka_li     15
  ka_li     16
  ka_li     17
  ka_li     18
  ka_li     19
  ka_li     20
  pha     1   
  pha     2
  pha     3
  pha     4
  pha     5
  pha     6
  pha     7
  pha     8
  pha     9
  pha     10
  pha_le     11
  pha_le     12
  pha_le     13
  pha_le     14
  pha_le     15
  pha_le     16
  pha_le     17
  pha_le     18
  pha_le     19
  pha_le     20
...

I thought I need to loop through the data first and use condition statement, so I tried:

for (i in 1:nrow(df)){
  ifelse (df$Time < 11,prev<-df$Target,df$Target<-paste(prev, df$Target,sep = "_"))
  print(df)
}

But it doesn't work... I am wondering whether my logic is correct or there is a problem with the statement? .. I am new to R, really hope anyone could help! Thanks a lot!!

Aucun commentaire:

Enregistrer un commentaire