0

R にデータ フレームがあり、さまざまなアイテムをさまざまな色でプロットするためにダミー変数を追加したいと考えています。

私のデータフレームはdf <-、次のようなものです:

UID CategoryA  count
  1       AAA      2
  2       AAA      2
  3       BBB      1
  4       CCC      1
  5       DDD      1

私は別のリストを持っています、special <- c("AAA", "DDD")

私は次のようなもので終わりたいdfです:

UID CategoryA  count dummy
  1       AAA      2     1
  2       AAA      2     1
  3       BBB      1     0
  4       CCC      1     0
  5       DDD      1     1 

だからdummy = 1、どこでもCategoryA == special

%in%これを検索してみましたが、グーグルで検索するのが難しいと思われます。

見当違いの理由でこれを行っている可能性があるため、問題を回避するのに役立つかもしれません---このダミー変数を作成する目的は、すべてのカテゴリをカウント別にリストする横向きのヒストグラムのような棒グラフを作成することです。この変数に を指定しgroupて、dummy==1 の赤と、dummy==0 の緑に色を付けます。私はggplot2を使用します。

4

2 に答える 2

5

以下に、いくつかの可能な構造を示します。

categoryA <- c("AAA", "AAA", "BBB", "CCC", "DDD")
special <- c("AAA", "DDD")

# Create a dummy variable
as.integer(categoryA %in% special)
# [1] 1 1 0 0 1

# Create a color vector (2 methods shown)
c("green", "red")[categoryA %in% special + 1]
# [1] "red"   "red"   "green" "green" "red"  
ifelse(categoryA %in% special, "red", "green")
# [1] "red"   "red"   "green" "green" "red"  
于 2012-05-14T23:33:07.947 に答える
2

うーん、投稿した直後に、以前の私の質問に答えてくれた人からこれを理解しました...

df$dummy <- ifelse(df$categoryA %in% special,1,0)

完全を期すために、これも私のggplotコードに追加する必要がありました...

scale_fill_manual(values=c("#00FFAA","#FF0000"), 
                       name="Legend",
                       breaks=c("TRUE", "FALSE"),
                       labels=c("Dummy", "No Dummy")) +
于 2012-05-14T23:34:47.253 に答える