小编Lou*_*sMP的帖子

ggplot2中单独的符号和行键连接图例

我有一个类似于以下的图,其中线型和形状映射到同一变量。我想保留连接的图例,但希望图例中的点在线上方,以便我可以更好地看到线型。任何帮助表示赞赏。

library(tidyverse)
library(grid)

ggplot(mtcars, aes(gear, mpg, 
                   shape = factor(cyl), 
                   linetype = factor(cyl),
                   color = factor(cyl))) + 
  geom_point(size = 2) +
  stat_summary(fun = mean, geom = "line", size = 1)+
  theme(legend.key.width  = grid::unit(0.5, "inch"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

5
推荐指数
1
解决办法
97
查看次数

使用 !!sym 时在 n_distinct 中使用过滤器

我需要在 summarise(n_distinct(...)) 中应用过滤器,如下例所示:

mtcars %>% 
  group_by(carb) %>% 
  summarise(x = n_distinct(mpg[cyl == 8]))
Run Code Online (Sandbox Code Playgroud)

但我需要能够提供不同的变量,而不仅仅是 mpg。

我通常会执行下面的代码,但出现错误,指出未找到对象“cyl”。

my_var <- "mpg"
mtcars %>% 
  group_by(carb) %>% 
  summarise(x = n_distinct(!!sym(my_var)[cyl == 8]))
Run Code Online (Sandbox Code Playgroud)

我还尝试了以下方法,它可以运行,但没有提供预期的计数;它似乎没有维护这些组:

mtcars %>% 
  group_by(carb) %>% 
  summarise(x = n_distinct(pull(filter(., cyl == 8), !!sym(my_var))))
Run Code Online (Sandbox Code Playgroud)

我对其他解决方案持开放态度,但过滤器需要位于 n_distinct 内,因为需要其他没有特定子集的摘要。

r dplyr

0
推荐指数
1
解决办法
55
查看次数

标签 统计

r ×2

dplyr ×1

ggplot2 ×1