[英]Set a dummy variable in an R data frame for plotting by group in ggplot2
我在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
因此,無論CategoryA == special
, dummy = 1
我嘗試搜索此內容,但我懷疑它需要%in%
,很難用Google搜索。
我這樣做可能是出於誤導的原因,所以也許可以幫助我簡化該問題-我創建此虛擬變量的目的是創建一個條形圖,該條形圖是一種側向直方圖,按計數列出所有類別。 我希望此變量提供一個group
,以便為虛擬== 1的紅色和虛擬== 0的綠色着色。 我將使用ggplot2。
以下是一些可能的構造:
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"
嗯,剛發布后,我就從回答我的一個較早問題的人那里發現了這一點...
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")) +
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.