2017-11-07 8 views
0

値としては、次のとおりです。- 列名を使用して、私のようにフォーマットされたデータテーブルを持っている

私が達成しようとしている何
Name   A1 A2 A3  A4 
Object 1   1  0  1  0 
Object 2   1  0  0  0 
Object 3   0  1  0  1 

:Rで

Name   Skill LeveL Skill Level Skill Level Skill Level 
Object 1   A1 1 A2  0  A3 1 A4  0 
Object 2   A1 1 A2  0  A3 0 A4  0 
Object 3   A1 0 A2  1  A3 0 A4  1 

、最高どのようになりますかこれを達成する方法?私は、Rが重複する列名を扱うことができないという事実を認識しています。これを防ぐために、 'Skill1、Level1 - Skill2、Level2')は列名としても機能します。私のソースデータテーブルには、カラム名のダイナミックレンジがあります(したがって、2〜40カラムの間に含まれるサブセットに依存します)。

答えて

1

あなたはこの

ll <- lapply(2:ncol(df), function(x) data.frame(Skill = names(df[x]), Level = df[, x])) 
cbind(Name = df[, 1], do.call('cbind', ll)) 
を試すことができます
関連する問題