【问题标题】:Plot if variable is unique绘制变量是否唯一
【发布时间】:2021-06-02 15:24:52
【问题描述】:

我是 R 新手,正在努力制作情节。

什么?

我有一个简化后的数据集,如下所示:

Article Client Revenue Client
First 1 500
Second 2 1400
third 3 1000
third 2 1400
fourth 1 500
fifth 3 1000

收入客户总是相同的客户,是他们购买的总产品。我想为每个绘制其收入的独特客户绘制密度图。我只是不知道该怎么做。如果你能帮助我,那就太好了。

代码

没有给出想要的结果

for (i in unique(Book1_1$`Werf adres`))
  {
  # Kernel Density Plot
  d <- with(Book1_1[Book1_1$`Werf adres`==i,],  density(Book1_1$`Omzet 19/werf`) # returns the density data
  plot(d)
  polygon(d, col="red", border="blue")
}

【问题讨论】:

  • 你想只绘制唯一的客户(忽略那些多次出现的客户,正如你的标题所暗示的那样),还是每个客户都有一个总结图?
  • 我想绘制独特的客户,很抱歉造成混乱。

标签: r plot


【解决方案1】:

以下代码将数据子集到每个客户的第一行,然后绘制总收入的内核密度估计值。我假设数据框名为df,客户​​端id变量Client,收入变量Revenue

require("tidyverse")

group_by(df, Client) %>%
  slice(1) %>%
  ggplot(data = ., aes(Revenue)) + 
    geom_density()

【讨论】:

  • 我不确定我是否完全清楚我想要实现的目标,我的道歉。我想看看每个客户的收入是如何分配的。因此,对于每个独特的客户,它的总收入(Omzet 19/werf)并查看其分布。因为客户弹出很多(总收入也是如此,因为它总是在同一行),我不想重复这个。
【解决方案2】:

您是否正在寻找这样的解决方案?

library(dplyr)
library(ggplot)
df %>% 
  mutate(Client=factor(Client)) %>% 
  ggplot() +
  geom_density(aes(x=Revenue_Client, group=Client, fill=Client), alpha=0.5, adjust=2) +
  theme_pubclean()

数据:

structure(list(Article = c("First", "Second", "third", "third", 
"fourth", "fifth"), Client = c(1L, 2L, 3L, 2L, 1L, 3L), Revenue_Client = c(500L, 
1400L, 1000L, 1400L, 500L, 1000L)), class = "data.frame", row.names = c(NA, 
-6L))

【讨论】:

    猜你喜欢
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多