1

私は一連の観察健康調査データを持っています。ソース ID を変更して、多数のソースを引き続き識別できるようにしたいのですが、元の 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
4

3 に答える 3

4

データフレームが df の場合、これでうまくいくはずです。

 df$NewID <- as.numeric(factor(df$ID)) 
于 2013-03-28T15:52:18.797 に答える
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))
于 2013-03-29T11:58:56.233 に答える
0

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

于 2013-03-28T15:50:40.043 に答える