2016-04-28 11 views
-3

この例のデータでは、3人が10個の項目を可変数のグループにソートし、各グループにテキストラベルを付けました。 人物とラベルはテキストフィールドです。アイテムvarは、ダウンロードされRに読み込まれると、整数として読み込まれます。アイテム変数は実際にはカテゴリデータであり、アイテムのテキストを定義します。テストの項目番号は良いアナロジーです。ラベル、アイテム、人物の順番は問わず、目視検査を可能にするために、ここで見ているようにデータを並べ替えるのが一般的です。この例では、各人に10個の項目がありますが、実際には100個の項目があります。それぞれの人は、可変数のラベルを持っています。各ラベルにはさまざまな項目があります。すべてのアイテムは1つのラベルに関連付けられており、すべてのアイテム(この例では1〜10)が1人ずつ表示されますが、欠落データはありません。Rコード - 再構成データ、3列の積み重ねられたデータの行

人物グループ項目

label_A PERSON_1 1

label_A PERSON_1 2

label_A PERSON_1 3

label_A 4 PERSON_1

PERSON_1 label_B 5

PERSON_1 label_B 6

label_C PERSON_1 7

label_C PERSON_1 8

label_C PERSON_1 9

label_C 10 PERSON_1

PERSON_2 label_D 1

PERSON_2 label_D 2

PERSON_2 3

PERSON_2 4

をlabel_D label_D ...簡潔

ために省略残りの行は、私は、次の形式に再構成データを必要とします。各行は関連する項目を持つラベル変数で、ラベルは1行にのみ表示されます。それぞれの人は、一意のラベルを持つ回数だけ繰り返します。私はスタックのオーバーフローを検索し、再構成と整頓で複数の試みを行いました。私が作ることができるのは、人とラベルの列を持つデータフレームに1または0がある直方体バイナリ行列です。この例の各明細値に対して私は後処理をして、私が欲しいものを得ることができますが、むしろすべてをRで終わらせます。ここに示すように、実際の項目値が列に必要です。理想的には、最大ncolは、牡丹&ラベルごとに1つで、並べ替えを表すのに必要な数だけです。 Person3、label_Hは項目の7つのcolを必要としたので、それらの列または他の行にNAまたは0が存在する可能性があります。 私はいつも私が困っているこの時間StackOverflowに必要な答えを見つけることができます、ほとんどのご支援いただければ幸いです。

者グループ項目

PERSON_1 label_A 1 2 3 4
PERSON_1 label_B 5 6
PERSON_1 label_C 7 8 9 10
PERSON_2 label_D 1 2 3 4
PERSON_2 label_E 5 6 7
person_2 label_F 8 9 10
person_3 label_G 1 2 3
person_3 label_H 4 5 6 7 8 9 10

+1

あなたは何をしようとしたことがありますか? –

+1

あなたが試したことを示してください。 – Heroka

答えて

0

質問を完全に理解しているかどうかはわかりません。

df <- read.table(header=TRUE, text= 
"person group item 
person_1 label_A 1 
person_1 label_A 2 
person_1 label_A 3 
person_1 label_A 4 
person_1 label_B 5 
person_1 label_B 6 
person_1 label_C 7 
person_1 label_C 8 
person_1 label_C 9 
person_1 label_C 10 
person_2 label_D 1 
person_2 label_D 2 
person_2 label_D 3 
person_2 label_D 4") 
df2 <- unique(df[-3]) 
split(df$item, list(df$person, df$group), drop=TRUE) 
df2$L <- split(df$item, list(df$person, df$group), drop=TRUE) 
df2 

結果:最終的にあなたは、このような何かを探している

#> df2 
#  person group   L 
#1 person_1 label_A 1, 2, 3, 4 
#5 person_1 label_B  5, 6 
#7 person_1 label_C 7, 8, 9, 10 
#11 person_2 label_D 1, 2, 3, 4 
関連する問題