改变R中的调查数据

时间:2013-03-28 15:42:44

标签: r

我有一套观察性健康调查数据。我想修改源标识符,以便我仍然可以识别多个源,但原始ID不是跟踪ID以保持机密性。我无法搞清楚。

这是数据帧的基本布局

ID  
30

30
30
30
24
24
24

我想创建一个newID,以便数据看起来像下面的

NewID   ID  
1       30   
1       30
1       30
1       30
2       24
2       24
2       24

3 个答案:

答案 0 :(得分:4)

如果您的数据框是df,那么应该这样做。

 df$NewID <- as.numeric(factor(df$ID)) 

答案 1 :(得分:0)

cbind(match(ID,unique(ID)),ID)

答案 2 :(得分:0)

rle在这里很有用:

> ID <- rep(c(30,24), c(4,3)) # your data
> ind <- rle(ID)$lengths
> data.frame(ID, newID=rep(c(1,length(ind)), ind ))
  ID newID
1 30     1
2 30     1
3 30     1
4 30     1
5 24     2
6 24     2
7 24     2

transform也是另一种选择

> transform(ID, newID=rep(c(1,2),   rle(ID)$lengths))