0

我正在学习 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.

我以为是因为因素问题,但我使用了“as.factor()”,还是一样。我四处搜索,但似乎找不到这个错误的解释。也许这很简单,但我无法弄清楚。

如果有人对此事有任何意见,我将不胜感激。谢谢!

4

2 回答 2

6

“识别”不是有效的统计数据。我猜你想用

ggplot(Mela_Benign, aes(x=Gender, y=Value)) + geom_bar(stat = "identity")
于 2017-03-04T03:46:25.523 回答
0

如果你想绘图,你可以试试这个。

library(purrr)

Mela%>%
split(.$Behavior)%>%
  map(~ggplot(., aes(x=Gender, fill=Gender))+geom_bar()+
    ggtitle(as.character(.$Behavior))+
     theme_bw()
  )
于 2017-03-04T03:49:32.103 回答