Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在dplyr TIBLE字符变量中包含数学符号?_R_Ggplot2_Dplyr_Tibble - Fatal编程技术网

如何在dplyr TIBLE字符变量中包含数学符号?

如何在dplyr TIBLE字符变量中包含数学符号?,r,ggplot2,dplyr,tibble,R,Ggplot2,Dplyr,Tibble,我有不同工资率的个人数据,我想做一个ggplot,包括每个工资箱的单独系列 下面的代码可以工作,但我希望有一种方法可以在变量中包含数学符号,这样我就不用ggplot了,但这对基础图形有效,应该也可以使用ggplot lbl <- gsub('^(.*)(?=[<>])', 'paste(\\1)', unique(wage_data$worker_group), perl = TRUE) # [1] "paste(Wage)>=10" "

我有不同工资率的个人数据,我想做一个ggplot,包括每个工资箱的单独系列


下面的代码可以工作,但我希望有一种方法可以在变量中包含数学符号,这样我就不用ggplot了,但这对基础图形有效,应该也可以使用ggplot

lbl <- gsub('^(.*)(?=[<>])', 'paste(\\1)', unique(wage_data$worker_group), perl = TRUE)
# [1] "paste(Wage)>=10"   "paste(9<=Wage)<10" "paste(Wage)<9"

ggplot(wage_data, aes(y, z, color = worker_group)) +
  geom_point() +
  scale_color_manual(values = scales::hue_pal()(3), labels = parse(text = lbl))
lbl这可能有效:

library(ggplot2)
library(tibble)
library(tidyverse)
wage_data <- tibble(
  x=runif(100, 8, 11),
  y=rnorm(100), 
  z=y+rnorm(100, 0, 0.5),
  worker_group=case_when(
    x<9 ~ "Wage < 9",
    x>=9 & x<10 ~ "9 <= `Wage < 10`",
    x>=10 ~ "Wage >= 10"
  )
)
wage_data %>% 
  ggplot(aes(y, z, color=worker_group)) + 
  geom_point() +
  scale_color_manual(values = scales::hue_pal()(3),
                     labels = scales::parse_format())
库(ggplot2)
图书馆(tibble)
图书馆(tidyverse)
工资数据%
ggplot(aes(y,z,颜色=工人组))+
几何点()+
缩放颜色手动(值=缩放::色调pal()(3),
labels=scales::parse_format())
输出:


我不认为这是我想要的,因为在绘图之前必须手动指定标签和箱子?理想情况下,这些标签来自数据,以最大限度地减少为序列分配不正确标签的机会。这些标签实际上来自数据,它是编程的。如果你想像另一个答案一样手动修复标签,那就去吧哇,这太棒了!你知道如果worker_组变量是一个因子,而因子标签上有数学符号,是否还有其他方法可以这样做吗?只是因为我可能想重新排列它们,因为它们不会自然地按递增或递减顺序排列,而是按字母顺序排列。
library(ggplot2)
library(tibble)
library(tidyverse)
wage_data <- tibble(
  x=runif(100, 8, 11),
  y=rnorm(100), 
  z=y+rnorm(100, 0, 0.5),
  worker_group=case_when(
    x<9 ~ "Wage < 9",
    x>=9 & x<10 ~ "9 <= `Wage < 10`",
    x>=10 ~ "Wage >= 10"
  )
)
wage_data %>% 
  ggplot(aes(y, z, color=worker_group)) + 
  geom_point() +
  scale_color_manual(values = scales::hue_pal()(3),
                     labels = scales::parse_format())