2012-02-15 4 views
5

私はロングフォーマットの縦データを持っています。私は自分のデータの各観測を識別する変数列に基づいてID変数を作成したいと思います。私はどのようにそれをRで行うのですか?ID列を作成するには

例:

name id year var1 var2 
A 1 1 4 3 
A 1 2 5 1 
A 1 3 4 2 
B 2 1 . . 
B 2 2 4 3 
B 2 3 5 1 

すべてのヘルプ:私は、私のような、すべての名前のための固有の番号と「ID」と呼ばれる新しい列を生成したい

name year var1 var2 
A 1 4 3 
A 2 5 1 
A 3 4 2 
B 1 . . 
B 2 4 3 
B 3 5 1 

このデータを持っていますか?

答えて

4

あなたname列が1つだけの文字が含まれていない場合(またはそれがない場合でも)、あなたが使用することができます。

dat$id <- as.numeric(as.factor(dat$name)) 

または、より簡単に:

datは、あなたの data.frameある
dat$id <- c(as.factor(dat$name)) 

1
tc=' 
name year var1 var2 
A 1 4 3 
A 2 5 1 
A 3 4 2 
B 1 . . 
B 2 4 3 
B 3 5 1' 

df <- read.table(text=tc, header=T) 

df$ID <- match(df$name, LETTERS) 

名前が列であるか、データフレームのルーンネームであるかはわかりませんが、 の場合は、代わりにrownames(df)を試し列ではありませんdf$name

+0

私は 'text = tc'を' textConnection(tc) 'に置き換えるべきだと思います。 – jbaums

+0

@jbaumsどうしてそうではありませんか。 – aatrujillob

+0

@jbaums 'text'はread.tableの新しい引数で、' textConnection'を避けるのに役立ちます。あなたが望むなら、中間の男を切り取ってください。 –

関連する問題