r语言 - 根据数据框中的特定条件给出唯一的 ID 号



我想根据 df 中的某些条件在数据框 (df) 中给出一个唯一的 ID 号。我的 df 看起来像这样:

dfin <-
STUDY   DRUG  FED  DOSE  TIME  CONC
 4       0     1    50    2     10
 4       0     1    60    4     25
 5       1     1    10    5     20
 12      0     0    50    2     10

等等。我想为每个唯一的STUDY, DRUG, FED, DOSE组合添加一个唯一的 ID 号。上面的输出应该是这样的:

dfout <- 
STUDY   DRUG  FED  DOSE  TIME  CONC  ID
 4       0     1    50    2     10    1
 4       0     1    60    4     25    2
 5       1     1    10    5     20    3
 5       1     0    10    5     25    4  
 12      0     0    50    2     10    5

我需要有关如何在 R 中执行此操作的帮助。

>这是data.table.GRP变量的要点,见?data.table

.GRP是一个integer,长度为1,包含一个简单的组计数器。 1 用于第 1 组,2 用于第 2 组,依此类推。

用法:

library(data.table)
setDT(dfin)[ , ID := .GRP, by = .(STUDY, DRUG, FED, DOSE)]
此外,当您

标记问题时,您也不清楚您是否想到了data.table;如果是这种情况,请参阅入门教程。

有了dplyr,我们就可以使用group_indices_

library(dplyr)
dfin %>%
    mutate(ID= group_indices_(., 
        .dots= c("STUDY", "DRUG", "FED", "DOSE")))
#   STUDY DRUG FED DOSE TIME CONC ID
#1     4    0   1   50    2   10  1
#2     4    0   1   60    4   25  2
#3     5    1   1   10    5   20  3
#4    12    0   0   50    2   10  4

最新更新