R根据条件填写浓度向量

R fill in vector for concentration based on condition

我 运行 遇到以下问题: 我有以下 data.table:

我有一个浓度范围:

concentrations <- c(0.0001, 0.001, 0.01, 0.1, 1, 10)

我想要发生的是,如果相同=“否”,则向下填写浓度范围,如下所示:

但我还想发生的是,如果我将第 7 种药物浓度添加到数据表中,我希望该药物浓度变为 NA,然后继续。像这样:

我之前发布过这个问题,但现在我更详细了。

concentration <- c(0.0001, 0.001, 0.01, 0.1, 1, 10)

df <- data.frame(Drug = c(rep(1, 6), rep(2, 7), rep(3, 3)))

df %>%
  group_by(Drug) %>%
  mutate(Concentration = concentration[row_number()])

# A tibble: 16 x 2
# Groups:   Drug [3]
    Drug Concentration
   <dbl>         <dbl>
 1     1        0.0001
 2     1        0.001 
 3     1        0.01  
 4     1        0.1   
 5     1        1     
 6     1       10     
 7     2        0.0001
 8     2        0.001 
 9     2        0.01  
10     2        0.1   
11     2        1     
12     2       10     
13     2       NA     
14     3        0.0001
15     3        0.001 
16     3        0.01