2016-10-13 8 views
-1

バイナリを内容として含む行列に変換したい2つの列があります。たとえば、次のように2つの列を行列形式に変換する

これらの列(名前と動物)した場合:

Name Animal 
Jen Cat 
Sam Dog 
Pat Hamster 
Ann Fish 
Lea Cat 
Jen Hamster 
Sam Hamster 
Jen Fish 

私はこの形式に変換したいでしょう:

Cat Dog Hamster Fish 
Jen 1 0 1  1 
Sam 0 1 1  0 
Pat 0 0 1  0 
Ann 0 0 0  1 
Lea 1 0 0  0 
+2

たぶん 'テーブル(DF1 $名、DF1 $アニマル)'? – zx8754

+3

ああ、データを画像として投稿しないでください。以前のテキストバージョンがはるかに優れていました。 – zx8754

+0

私は以前のコメントに同意します。imdagesはあなたに後でお答えしようとするために遊ぶのが好きではありません(あなたの質問は自分で解決する努力を示していないので、[ask]を参照してください) – Tensibai

答えて

0
@で言及されている table以外

zx8754コメント:

table(df$Name, df$Animal) 

次のようにxtabsを使用することもできます:

xtabs(Col~Name+Animal, cbind(df,Col=1)) 

#  Animal 
#Name Cat Dog Fish Hamster 
# Ann 0 0 1  0 
# Jen 1 0 1  1 
# Lea 1 0 0  0 
# Pat 0 0 0  1 
# Sam 0 1 0  1 

データ

df <- structure(list(Name = structure(c(2L, 5L, 4L, 1L, 3L, 2L, 5L, 
2L), .Label = c("Ann", "Jen", "Lea", "Pat", "Sam"), class = "factor"), 
    Animal = structure(c(1L, 2L, 4L, 3L, 1L, 4L, 4L, 3L), .Label = c("Cat", 
    "Dog", "Fish", "Hamster"), class = "factor")), .Names = c("Name", 
"Animal"), class = "data.frame", row.names = c(NA, -8L)) 
+1

ありがとう手伝い! –

関連する問題