使用R中的for / nested循环创建新列

拉夫拉·阿比吉扬(Ravula Abhigyan)

刚开始使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章