我想根据 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