R 在ggplot中绘制2个以上的因子变量

R 在ggplot中绘制2个以上的因子变量,r,ggplot2,R,Ggplot2,我的数据集如下所示 dat <- data.frame(ID = c(150,151,155,155,155,155,150), year = c(1995,2011,2012,2012,2013,2012,2013), Acceptance = c(no,yes,yes,yes,yes,no,no)); dat% 过滤器(年份(日期)>2000)% 分组依据(ID,年份)%>% 总结(计数=n() ggplot(cl_d,aes(年份,计数))+ 几何图形栏(stat='identit

我的数据集如下所示

dat <- data.frame(ID = c(150,151,155,155,155,155,150), year = c(1995,2011,2012,2012,2013,2012,2013), Acceptance = c(no,yes,yes,yes,yes,no,no));
dat%
过滤器(年份(日期)>2000)%
分组依据(ID,年份)%>%
总结(计数=n()
ggplot(cl_d,aes(年份,计数))+
几何图形栏(stat='identity')

条形图应显示特定ID 155在大于2000的日期内接受“是”的次数。嘿,此代码应该有效。如果您还有任何问题,请随时尝试避免使用插件

dat <- data.frame(c(150,151,155,155,155,155,150), 
c(1995,2011,2012,2012,2013,2012,2013), 
c("no","yes","yes","yes","yes","no","no"))
colnames(dat)[1] <- "ID"
colnames(dat)[2] <- "Date"
colnames(dat)[3] <- "claim_count1"
NewData <- dat[dat$ID==155 & dat$Date > 2000 & dat$claim_count1== "yes",]
ggplot(data=NewData, aes(x=Date)) + geom_bar(stat ="count")

dat嘿,这段代码应该行得通,我总是尽量避免使用插件,如果你还有什么问题,尽管问吧

dat <- data.frame(c(150,151,155,155,155,155,150), 
c(1995,2011,2012,2012,2013,2012,2013), 
c("no","yes","yes","yes","yes","no","no"))
colnames(dat)[1] <- "ID"
colnames(dat)[2] <- "Date"
colnames(dat)[3] <- "claim_count1"
NewData <- dat[dat$ID==155 & dat$Date > 2000 & dat$claim_count1== "yes",]
ggplot(data=NewData, aes(x=Date)) + geom_bar(stat ="count")
dat这是什么

这是什么


这就是你想要的吗

library(tidyverse);
dat %>%
    filter(ID == 155 & year >= 2000 & Acceptance == "yes") %>%
    count(ID, year) %>%
    ggplot(aes(as.factor(year), n)) +
    geom_bar(stat = "identity") +
    labs(x = "Year", y = "Count")


样本数据
dat这就是你想要的吗

library(tidyverse);
dat %>%
    filter(ID == 155 & year >= 2000 & Acceptance == "yes") %>%
    count(ID, year) %>%
    ggplot(aes(as.factor(year), n)) +
    geom_bar(stat = "identity") +
    labs(x = "Year", y = "Count")


样本数据
dat您似乎希望
year
采用日期格式,并且图形也采用日期格式。如果是这种情况,请参见下面的代码:

dat <- data.frame(ID = c(150,151,155,155,155,155,150), 
 year =  c(1995,2011,2012,2012,2013,2012,2013), 
 Acceptance = c("no","yes","yes","yes","yes","no","no"))

dat$year <- as.Date(ISOdate(dat$year, 1, 1))

cl_d <- dat %>% filter(ID==155) %>%
  subset(year > as.Date("2000-01-01")) %>%
         group_by(ID, year) %>%
         summarise(count=n())

ggplot(cl_d, aes(year, count)) + 
  geom_bar(stat='identity') + 
  scale_x_date(date_labels ="%Y", date_breaks = "1 year")
<代码>日期截止日期(“2000-01-01”)%>% 分组依据(ID,年份)%>% 总结(计数=n() ggplot(cl_d,aes(年份,计数))+ 几何图形栏(stat='identity')+ 比例x日期(日期标签=“%Y”,日期间隔=“1年”)
您似乎希望
年份
采用日期格式,并且图形也采用日期格式。如果是这种情况,请参见下面的代码:

dat <- data.frame(ID = c(150,151,155,155,155,155,150), 
 year =  c(1995,2011,2012,2012,2013,2012,2013), 
 Acceptance = c("no","yes","yes","yes","yes","no","no"))

dat$year <- as.Date(ISOdate(dat$year, 1, 1))

cl_d <- dat %>% filter(ID==155) %>%
  subset(year > as.Date("2000-01-01")) %>%
         group_by(ID, year) %>%
         summarise(count=n())

ggplot(cl_d, aes(year, count)) + 
  geom_bar(stat='identity') + 
  scale_x_date(date_labels ="%Y", date_breaks = "1 year")
<代码>日期截止日期(“2000-01-01”)%>% 分组依据(ID,年份)%>% 总结(计数=n() ggplot(cl_d,aes(年份,计数))+ 几何图形栏(stat='identity')+ 比例x日期(日期标签=“%Y”,日期间隔=“1年”)
我收到一个未找到验收的错误:(检查
colnames(dat)
并相应更改名称。我收到一个未找到验收的错误:(检查
colnames(dat)
并相应地更改名称。@毛里蒂斯,是的。由于某种原因,我无法在图表中看到绘图。@umar您是否包含了必要的库?
库(tidyverse)
将完成这项工作。然后复制并粘贴上面的代码。我还添加了您的示例数据,以使代码完全可复制。@Mauritis我已经包含了该软件包;但是没有plot@umar我刚刚编辑了我的评论和帖子,以包含样本数据。运行时,这是完全可复制的。你能再检查一下吗?也许可以重新启动你的R会话。我无法重新报告o介绍一下您的情况。@Mauritis,是的。由于某种原因,我无法在图表中看到绘图。@umar您是否包含了必要的库?
library(tidyverse)
将完成这项工作。然后复制并粘贴上面的代码。我还添加了您的示例数据,以使代码完全可复制。@Mauritis我已经包含了该软件包;但是没有plot@umar我刚刚编辑了我的评论和帖子,以包含样本数据。运行时,这是完全可复制的。你能再检查一下吗?也许可以重新启动你的R会话。我无法重新报告介绍一下你的情况。