我正在学习R(RStudio)和tidyverse来做一些统计分析和数据表示。我正在使用黑色素瘤数据集。我被要求大致找到被诊断患有恶性肿瘤的男性患者的数量和被诊断患有良性肿瘤的女性患者的数量。最初,我这样做了:
library(tidyverse)
load("Skin.Rda") #given data file
ggplot(Mela, aes(Behavior, fill=Gender)) + geom_bar(position="dodge")
但我并不满意,因为你无法清楚地看到价值观。我知道我可以做各个方面,但即便如此,我也不知道如何独立设置每个方面的y值范围。
所以,我决定将其分解;良性与恶性。 (我也想在条形图的顶部添加文字,但我甚至无法完成简单的部分)。我缩小了数据并再次绘制:
Mela_Benign <- Mela %>% filter(Behavior=="Benign") %>% group_by(Gender) %>% summarise(Value=n())
ggplot(Mela_Benign, aes(x=Gender, y=Value)) + geom_bar(stat = "identify")
这给了我一个非常简单的表格(2x2男性=#,女性=#),但它产生了一个奇怪的错误,我以前没有遇到过:
Error: Found object is not a stat.
我认为这是因为因素问题,但我使用&#34; as.factor()&#34;并且仍然是一样的。我已经四处搜索,但似乎无法找到对此错误的解释。也许它很简单,但我无法弄清楚。
如果有人对此事有任何意见,我将不胜感激。谢谢!
答案 0 :(得分:6)
“识别”不是有效的统计数据。我猜你想用
ggplot(Mela_Benign, aes(x=Gender, y=Value)) + geom_bar(stat = "identity")
答案 1 :(得分:0)
如果您想绘图,可以尝试一下。
library(purrr)
Mela%>%
split(.$Behavior)%>%
map(~ggplot(., aes(x=Gender, fill=Gender))+geom_bar()+
ggtitle(as.character(.$Behavior))+
theme_bw()
)