在R数据框中设置虚拟变量,以便在ggplot2中按组绘制

Mit*_*ops 0 r pattern-matching ggplot2 dataframe

我在R中有一个数据框,我想添加虚拟变量,以便绘制不同颜色的不同项目.

我的数据框df <-是这样的:

UID CategoryA  count
  1       AAA      2
  2       AAA      2
  3       BBB      1
  4       CCC      1
  5       DDD      1
Run Code Online (Sandbox Code Playgroud)

我有另一个清单, 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 
Run Code Online (Sandbox Code Playgroud)

所以dummy = 1,无论在哪里CategoryA == special

我试图搜索这个,但我怀疑它需要%in%谷歌很难.

我可以做这误导的原因,所以也许你可以帮我的短路问题---我在创造这个虚拟变量的目标是创建一个条形图是那种横盘直方图通过计数列出所有类别.我希望这个变量提供一个group颜色为dummy == 1 red的那些和dummy == 0 green的那些.我将使用ggplot2.

Jos*_*ien 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"  
Run Code Online (Sandbox Code Playgroud)