刚开始使用R时,我需要一些帮助来理解for / nested循环的应用。
StudyID<-c(1:5)
SubjectID<-c(1:5)
df<-data.frame(StudyID=rep(StudyID, each=5), SubjectID=rep(SubjectID, each=1))
如何创建一个称为ID的新列,这将使用的组合studyID
,并subjectID
创建一个独特的ID?
因此,对于此数据,唯一ID应为1:25。
因此,最终数据如下所示:
UniqueID<- c(1:25)
df<-cbind(df,UniqueID)
View(df)
还有没有其他更快更有效的循环方法?
使用该dplyr
软件包,您可以执行以下操作:
library(dplyr)
df$Id = group_indices(df,StudyID,SubjectID)
返回:
#StudyID SubjectID Id
# 1 1 1
# 1 2 2
# 1 3 3
# 1 4 4
# 1 5 5
# 2 1 6
# 2 2 7
# 2 3 8
# 2 4 9
# 2 5 10
# 3 1 11
# 3 3 13
# 3 4 14
# 3 5 15
# 4 1 16
# 4 2 17
# 4 3 18
# 4 4 19
# 4 5 20
# 5 1 21
# 5 2 22
# 5 3 23
# 5 4 24
# 5 5 25
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句