2016-03-23 4 views
1

データフレームに数値キーを追加しようとしていますが、数値を特定の列の値に対応させたいとします。この列には繰り返しがあり、それを反映する数字キーが欲しいです。Dataframe(R)の条件付き繰り返し数を使用して数値を増やす方法

例えば、これは私のデータフレームで一般一見です:

Gene Type 
A  1 
A  2 
B  1 
C  1 
C  1 
C  2 

私は簡単のためのテーブルのうちの多くを残しています。私は数値キーがGene列の値を反映するようにしたいので、次のようになります:

Gene Type Key 
A  1  1 
A  2  1 
B  1  2 
C  1  3 
C  1  3 
C  2  3 

何か提案がありますか?私は精神的なブロックを打って、本当に何をすべきか分からない。

+0

を試すことができますからキーAS my_table'または 'SELECT gene、type、(CONV(gene、36、10) - 9)ASキー... ' – tanner0101

答えて

2

あなたはこのような何かが `SELECT遺伝子、種、(ASCII(遺伝子) - ASCII( 'A')を)仕事ができる

df1$Key <- as.numeric(as.factor(df1$Gene)) 
# Gene Type Key 
# 1 A 1 1 
# 2 A 2 1 
# 3 B 1 2 
# 4 C 1 3 
# 5 C 1 3 
# 6 C 2 3 

データ

df1 <- structure(list(Gene = c("A", "A", "B", "C", "C", "C"), 
     Type = c(1L, 2L, 1L, 1L, 1L, 2L)), .Names = c("Gene", "Type"), 
     class = "data.frame", row.names = c(NA, -6L)) 
+0

各値に複数のレベルがない場合、これは素晴らしいことでしょう。そのように、あなたのメソッドは各出力のレベル数を与えます。助言がありますか? – BioBaker

関連する問題