我有一个
形式的数据集x<- c("London","Newyork","Miami","London","London","London")
y<- c(2008,2009,2008,2010,2009,2008)
df<- data.frame(x,y)
plot(length(unique(df$x)),y)
现在我想根据年份绘制x(长度)和y的唯一值。我期待像2008-2这样的图形; 2009-2; 2010-1。我需要根据城市数量的独特价值进行折叠。有什么建议吗?
答案 0 :(得分:3)
n_distinct
是dplyr
中方便的功能,用于查找unique
元素的数量。在这里,我们按照&#39; y&#39;列并获取&#39; y的n_distinct
。这可用于使用ggplot
library(dplyr)
library(ggplot2)
df %>%
group_by(y) %>%
summarise(n=n_distinct(x)) %>%
ggplot(., aes(x=y, y=n)) +
geom_bar(stat='identity')
答案 1 :(得分:2)
您可以使用tapply
计算每年的不同值,并使用barplot
进行绘图。
barplot(with(df, tapply(x, y, function(v) length(unique(v)))))