我有两列,即square_id& Smart_Nsmart如下所示。 我想计算(添加)N' s和S'对每个square_id和ggplot数据,即map square_id vs Smart_Nsmart。
square_id 1 1 2 2 2 2 3 3 3 3 的 Smart_Nsmart S N N N S S S S S
答案 0 :(得分:1)
我们可以使用count
,然后使用ggplot
绘制频率。在这里,我们用geom_bar
绘制它(因为OP的帖子中不清楚)
library(dplyr)
library(ggplot2)
df %>%
count(square_id, Smart_Nsmart) %>%
ggplot(., aes(x= square_id, y = n, fill = Smart_Nsmart)) +
geom_bar(stat = 'identity')
答案 1 :(得分:0)
以上答案非常聪明。但是,您可以实施count
和group_by
,而不是summarise
功能,以防将来您想要在代码中应用其他一些功能。
library(dplyr)
library(ggplot2)
dff <- data.frame(a=c(1,1,1,1,2,1,2),b=c("C","C","N","N","N","C","N"))
dff %>%
group_by(a,b) %>%
summarise(n = length(b) ) %>%
ggplot(., aes(x= a, y = n, fill = b)) +
geom_bar(stat = 'identity')