刚开始使用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)
有没有比循环更快更有效的方法?
3条答案
按热度按时间6l7fqoea1#
使用
dplyr
包,您可以执行以下操作:这将返回:
vwkv1x7d2#
另一种无需加载任何库(base R)即可实现的方法是(假设 Dataframe 基于两列进行排序):
或者你可以使用这个解决方案,在评论中提到(我更喜欢这个解决方案):
输出结果为:
3phpmpom3#
你可以把
interaction
写成R进制:例如(这个例子更好地表达了你所追求的东西):