0

I have this graph. enter image description here

And i want to merge it with this one.enter image description here

This is what I have tried.

freq <- read_excel("mg_freq_MFD.xlsx")
med <- read_excel("mg_med_MFD.xlsx")
freq$lookup <- freq$vlookup
freq$lookup <- gsub("|[^|]+$", "", freq$lookup)
freq$esc <- freq$vlookup
freq$esc <- gsub("_[^_]+$", "", freq$esc)
med$lookup <- med$vlookup
med$lookup <- gsub("|[^|]+$", "", med$lookup)
med$esc <- med$vlookup
med$esc <- gsub("_[^_]+$", "", med$esc)
total=20
db<- data.frame(x=1:3,
                y=c(5.5, 6.5,9.7))
escala<-c("4","3","2","1")
tituloQ6<-titulo[titulo$Var=="Q6", "Titulo"]
Q6<-freq[freq$esc=="Entrevista_final|1|ii|1|esc_Q6",c("var","mod","PERCENT")]
Q6med<-med[med$esc=="Entrevista_final|1|ii|1|Q6",c("var","mean")]

ggplot(Q6, aes(x=var, y=PERCENT,fill = factor(x=mod, levels = escala)))+
  geom_bar(stat = "identity", position = "stack", width =.5, color="red3")+
  scale_fill_manual(values = c("4"="white","3"="#fe5f5f","2"="red","1"="red3"))+
  scale_y_continuous(labels = scales::percent)+
  geom_text(aes(label=sprintf(PERCENT,fmt="%1.0f")),
            position = position_stack(vjust=0.5))+
  theme_classic()+
  ggtitle(tituloQ6)+
  labs(x="",
       y=NULL,
       caption = (paste("n= ", total)))+
  guides(y="none")+
  theme(legend.title = element_blank())+
  geom_point(data=Q6med, x=var, y=mean)

But i get an error on the factor.

Error in `geom_point()`:
! Problem while computing aesthetics.
ℹ Error occurred in the 3rd layer.
Caused by error in `factor()`:
! object 'mod' not found
Backtrace:
  1. base (local) `<fn>`(x)
 17. base::factor(x = mod, levels = escala)
Error in geom_point(data = Q6med, x = var, y = mean) :
ℹ Error occurred in the 3rd layer.
Caused by error in `factor()`:
! object 'mod' not found
structure(list(vlookup = c("Entrevista_final|1|Q3_nova|0|C1|1", 
"Entrevista_final|1|Q3_nova|0|C1|2", "Entrevista_final|1|Q3_nova|0|C3|1", 
"Entrevista_final|1|Q3_nova|0|C3|4", "Entrevista_final|1|Q3_nova|0|C3|2", 
"Entrevista_final|1|Q3_nova|0|C3|3", "Entrevista_final|1|Q3_nova|0|C4_1|2018", 
"Entrevista_final|1|Q3_nova|0|C4_1|2020", "Entrevista_final|1|Q3_nova|0|C4_1|1993", 
"Entrevista_final|1|Q3_nova|0|C4_1|2015", "Entrevista_final|1|Q3_nova|0|C4_1|2016", 
"Entrevista_final|1|Q3_nova|0|C4_1|1996", "Entrevista_final|1|Q3_nova|0|C4_1|99", 
"Entrevista_final|1|Q3_nova|0|C4_1|2017", "Entrevista_final|1|Q3_nova|0|C4_1|2004", 
"Entrevista_final|1|Q3_nova|0|C4_1|2019", "Entrevista_final|1|Q3_nova|0|C4_1|2002", 
"Entrevista_final|1|Q3_nova|0|C4_1|2021", "Entrevista_final|1|Q3_nova|0|C4_2|99", 
"Entrevista_final|1|Q3_nova|0|C4_2|2018"), cruza1 = c("Entrevista_final", 
"Entrevista_final", "Entrevista_final", "Entrevista_final", "Entrevista_final", 
"Entrevista_final", "Entrevista_final", "Entrevista_final", "Entrevista_final", 
"Entrevista_final", "Entrevista_final", "Entrevista_final", "Entrevista_final", 
"Entrevista_final", "Entrevista_final", "Entrevista_final", "Entrevista_final", 
"Entrevista_final", "Entrevista_final", "Entrevista_final"), 
    mod1 = c("1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"), cruza2 = c("Q3_nova", 
    "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", 
    "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", 
    "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", 
    "Q3_nova"), mod2 = c("0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"
    ), var = c("C1", "C1", "C3", "C3", "C3", "C3", "C4_1", "C4_1", 
    "C4_1", "C4_1", "C4_1", "C4_1", "C4_1", "C4_1", "C4_1", "C4_1", 
    "C4_1", "C4_1", "C4_2", "C4_2"), mod = c("1", "2", "1", "4", 
    "2", "3", "2018", "2020", "1993", "2015", "2016", "1996", 
    "99", "2017", "2004", "2019", "2002", "2021", "99", "2018"
    ), pop_extrapolada = c(22, 17, 32, 3, 3, 1, 4, 10, 1, 1, 
    2, 1, 2, 2, 1, 4, 1, 10, 2, 3), PERCENT = c(56.4102564102564, 
    43.5897435897436, 82.051282051282, 7.69230769230769, 7.69230769230769, 
    2.56410256410256, 10.2564102564103, 25.6410256410256, 2.56410256410256, 
    2.56410256410256, 5.12820512820513, 2.56410256410256, 5.12820512820513, 
    5.12820512820513, 2.56410256410256, 10.2564102564103, 2.56410256410256, 
    25.6410256410256, 15.3846153846154, 23.0769230769231), count = c(22, 
    17, 32, 3, 3, 1, 4, 10, 1, 1, 2, 1, 2, 2, 1, 4, 1, 10, 2, 
    3), BA = c(39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 
    39, 39, 39, 39, 39, 39, 13, 13), StdErr = c(0.0795074974876938, 
    0.0795074974876938, 0.0615313285518115, 0.0427252055542318, 
    0.0427252055542318, 0.0253433535020364, 0.0486447864199686, 
    0.0700118062133025, 0.0253433535020364, 0.0253433535020364, 
    0.0353661791821834, 0.0253433535020364, 0.0353661791821834, 
    0.0353661791821834, 0.0253433535020364, 0.0486447864199686, 
    0.0253433535020364, 0.0700118062133025, 0.100484337629983, 
    0.117340426124568), LowerCLMean = c(0.407774134748444, 0.279569006543315, 
    0.699529312635895, 0, 0, 0, 0.00691824151210088, 0.118752349327158, 
    0, 0, 0, 0, 0, 0, 0, 0.00691824151210088, 0, 0.118752349327158, 
    0, 0), UpperCLMean = c(0.720430993456685, 0.592225865251556, 
    0.941496328389746, 0.160929799423163, 0.160929799423163, 
    0.0754713784093646, 0.198209963616104, 0.394068163493355, 
    0.0754713784093646, 0.0754713784093646, 0.120819383213079, 
    0.0754713784093646, 0.120819383213079, 0.120819383213079, 
    0.0754713784093646, 0.198209963616104, 0.0754713784093646, 
    0.394068163493355, 0.352798149154327, 0.463095108198593), 
    ME = c(15.6328429354121, 15.6328429354121, 12.0983507876925, 
    8.40067225000863, 8.40067225000863, 4.9830352768339, 9.56458610520017, 
    13.7657907083098, 4.9830352768339, 4.9830352768339, 6.95373319310279, 
    4.9830352768339, 6.95373319310279, 6.95373319310279, 4.9830352768339, 
    9.56458610520017, 4.9830352768339, 13.7657907083098, NA, 
    NA), StdDev = c(4.55932029745697, 4.03560271072923, 5.42183783041485, 
    1.72749876078217, 1.72749876078217, 1, 1.99211042289525, 
    3.1247047104581, 1, 1, 1.41235641966466, 1, 1.41235641966466, 
    1.41235641966466, 1, 1.99211042289525, 1, 3.1247047104581, 
    1.40830867828517, 1.71755640373177), lookup = c("Entrevista_final|1|Q3_nova|0|C1|", 
    "Entrevista_final|1|Q3_nova|0|C1|", "Entrevista_final|1|Q3_nova|0|C3|", 
    "Entrevista_final|1|Q3_nova|0|C3|", "Entrevista_final|1|Q3_nova|0|C3|", 
    "Entrevista_final|1|Q3_nova|0|C3|", "Entrevista_final|1|Q3_nova|0|C4_1|", 
    "Entrevista_final|1|Q3_nova|0|C4_1|", "Entrevista_final|1|Q3_nova|0|C4_1|", 
    "Entrevista_final|1|Q3_nova|0|C4_1|", "Entrevista_final|1|Q3_nova|0|C4_1|", 
    "Entrevista_final|1|Q3_nova|0|C4_1|", "Entrevista_final|1|Q3_nova|0|C4_1|", 
    "Entrevista_final|1|Q3_nova|0|C4_1|", "Entrevista_final|1|Q3_nova|0|C4_1|", 
    "Entrevista_final|1|Q3_nova|0|C4_1|", "Entrevista_final|1|Q3_nova|0|C4_1|", 
    "Entrevista_final|1|Q3_nova|0|C4_1|", "Entrevista_final|1|Q3_nova|0|C4_2|", 
    "Entrevista_final|1|Q3_nova|0|C4_2|"), esc = c("Entrevista_final|1|Q3", 
    "Entrevista_final|1|Q3", "Entrevista_final|1|Q3", "Entrevista_final|1|Q3", 
    "Entrevista_final|1|Q3", "Entrevista_final|1|Q3", "Entrevista_final|1|Q3_nova|0|C4", 
    "Entrevista_final|1|Q3_nova|0|C4", "Entrevista_final|1|Q3_nova|0|C4", 
    "Entrevista_final|1|Q3_nova|0|C4", "Entrevista_final|1|Q3_nova|0|C4", 
    "Entrevista_final|1|Q3_nova|0|C4", "Entrevista_final|1|Q3_nova|0|C4", 
    "Entrevista_final|1|Q3_nova|0|C4", "Entrevista_final|1|Q3_nova|0|C4", 
    "Entrevista_final|1|Q3_nova|0|C4", "Entrevista_final|1|Q3_nova|0|C4", 
    "Entrevista_final|1|Q3_nova|0|C4", "Entrevista_final|1|Q3_nova|0|C4", 
    "Entrevista_final|1|Q3_nova|0|C4")), row.names = c(NA, -20L
), class = c("tbl_df", "tbl", "data.frame"))
structure(list(vlookup = c("Entrevista_final|1|Q3_nova|.|Q6_1", 
"Entrevista_final|1|Q3_nova|.|Q6_2", "Entrevista_final|1|Q3_nova|.|Q6_3", 
"Entrevista_final|1|Q3_nova|.|Q9_1", "Entrevista_final|1|Q3_nova|.|Q9_2", 
"Entrevista_final|1|Q3_nova|.|Q9_3", "Entrevista_final|1|Q3_nova|.|Q9_4", 
"Entrevista_final|1|Q3_nova|.|Q9_5", "Entrevista_final|1|Q3_nova|.|Q9_6", 
"Entrevista_final|1|Q3_nova|.|Q9_7", "Entrevista_final|1|Q3_nova|.|Q9_8", 
"Entrevista_final|1|Q3_nova|0|Q6_1", "Entrevista_final|1|Q3_nova|0|Q6_2", 
"Entrevista_final|1|Q3_nova|0|Q6_3", "Entrevista_final|1|Q3_nova|0|Q9_1", 
"Entrevista_final|1|Q3_nova|0|Q9_2", "Entrevista_final|1|Q3_nova|0|Q9_3", 
"Entrevista_final|1|Q3_nova|0|Q9_4", "Entrevista_final|1|Q3_nova|0|Q9_5", 
"Entrevista_final|1|Q3_nova|0|Q9_6"), cruza1 = c("Entrevista_final", 
"Entrevista_final", "Entrevista_final", "Entrevista_final", "Entrevista_final", 
"Entrevista_final", "Entrevista_final", "Entrevista_final", "Entrevista_final", 
"Entrevista_final", "Entrevista_final", "Entrevista_final", "Entrevista_final", 
"Entrevista_final", "Entrevista_final", "Entrevista_final", "Entrevista_final", 
"Entrevista_final", "Entrevista_final", "Entrevista_final"), 
    mod1 = c("1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"), cruza2 = c("Q3_nova", 
    "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", 
    "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", 
    "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", "Q3_nova", 
    "Q3_nova"), mod2 = c(".", ".", ".", ".", ".", ".", ".", ".", 
    ".", ".", ".", "0", "0", "0", "0", "0", "0", "0", "0", "0"
    ), var = c("Q6_1", "Q6_2", "Q6_3", "Q9_1", "Q9_2", "Q9_3", 
    "Q9_4", "Q9_5", "Q9_6", "Q9_7", "Q9_8", "Q6_1", "Q6_2", "Q6_3", 
    "Q9_1", "Q9_2", "Q9_3", "Q9_4", "Q9_5", "Q9_6"), mean = c(5.69767441860465, 
    7.18604651162791, 6.81395348837209, 6.325, 6.65, 7.68292682926829, 
    8.41463414634146, 8.07142857142857, 8.14634146341463, 8.59523809523809, 
    8.54761904761905, 6.61538461538461, 6.94871794871795, 6.43589743589744, 
    6.72222222222222, 6.75675675675676, 8.44736842105263, 8.23684210526316, 
    8.44736842105263, 8.57894736842105), ba = c(43, 43, 43, 40, 
    40, 41, 41, 42, 41, 42, 42, 39, 39, 39, 36, 37, 38, 38, 38, 
    38), N = c(43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 39, 
    39, 39, 39, 39, 39, 39, 39, 39), StdErr = c(0.470914185560204, 
    0.410281576101709, 0.416835766228631, 0.521900205807444, 
    0.402892230805839, 0.391375466555417, 0.269664126081159, 
    0.268409952413896, 0.304135230479118, 0.316349111010602, 
    0.250470946520814, 0.400365075596811, 0.407435440466744, 
    0.349722774823449, 0.426532227843502, 0.307106063412623, 
    0.290287995830448, 0.289658029819206, 0.240601576847107, 
    0.257153023503742), LowerCLMean = c(4.77203852970105, 6.37957987882874, 
    5.9946205378507, 5.29900543427478, 5.85799052940539, 6.91360135641181, 
    7.88453734944423, 7.54379718753762, 7.54850383690226, 7.97340904610116, 
    8.0552828750472, 5.82842110058807, 6.14784579920957, 5.7484818728014, 
    5.88370991085601, 6.1530446667685, 7.87675025833957, 7.66744195540224, 
    7.97440181971579, 8.07346251229383), UpperCLMean = c(6.62331030750825, 
    7.99251314442708, 7.63328643889348, 7.35099456572522, 7.4420094705946, 
    8.45225230212478, 8.94473094323869, 8.59905995531952, 8.74417908992701, 
    9.21706714437503, 9.0399552201909, 7.40234813018116, 7.74959009822633, 
    7.12331299899347, 7.56073453358844, 7.36046884674501, 9.0179865837657, 
    8.80624225512407, 8.92033502238947, 9.08443222454828), media_sem_fe = c(5.69767441860465, 
    7.18604651162791, 6.81395348837209, 6.325, 6.65, 7.68292682926829, 
    8.41463414634146, 8.07142857142857, 8.14634146341463, 8.59523809523809, 
    8.54761904761905, 6.61538461538461, 6.94871794871795, 6.43589743589744, 
    6.72222222222222, 6.75675675675676, 8.44736842105263, 8.23684210526316, 
    8.44736842105263, 8.57894736842105), ME = c(0.925635888903602, 
    0.806466632799168, 0.819332950521389, 1.02599456572522, 0.792009470594609, 
    0.769325472856485, 0.530096796897231, 0.527631383890947, 
    0.597837626512375, 0.62182904913694, 0.49233617257185, 0.786963514796548, 
    0.800872149508378, 0.687415563096039, 0.838512311366217, 
    0.60371208998826, 0.570618162713064, 0.569400149860914, 0.47296660133684, 
    0.505484856127225), lookup = c("Entrevista_final|1|Q3_nova|.|", 
    "Entrevista_final|1|Q3_nova|.|", "Entrevista_final|1|Q3_nova|.|", 
    "Entrevista_final|1|Q3_nova|.|", "Entrevista_final|1|Q3_nova|.|", 
    "Entrevista_final|1|Q3_nova|.|", "Entrevista_final|1|Q3_nova|.|", 
    "Entrevista_final|1|Q3_nova|.|", "Entrevista_final|1|Q3_nova|.|", 
    "Entrevista_final|1|Q3_nova|.|", "Entrevista_final|1|Q3_nova|.|", 
    "Entrevista_final|1|Q3_nova|0|", "Entrevista_final|1|Q3_nova|0|", 
    "Entrevista_final|1|Q3_nova|0|", "Entrevista_final|1|Q3_nova|0|", 
    "Entrevista_final|1|Q3_nova|0|", "Entrevista_final|1|Q3_nova|0|", 
    "Entrevista_final|1|Q3_nova|0|", "Entrevista_final|1|Q3_nova|0|", 
    "Entrevista_final|1|Q3_nova|0|"), esc = c("Entrevista_final|1|Q3_nova|.|Q6", 
    "Entrevista_final|1|Q3_nova|.|Q6", "Entrevista_final|1|Q3_nova|.|Q6", 
    "Entrevista_final|1|Q3_nova|.|Q9", "Entrevista_final|1|Q3_nova|.|Q9", 
    "Entrevista_final|1|Q3_nova|.|Q9", "Entrevista_final|1|Q3_nova|.|Q9", 
    "Entrevista_final|1|Q3_nova|.|Q9", "Entrevista_final|1|Q3_nova|.|Q9", 
    "Entrevista_final|1|Q3_nova|.|Q9", "Entrevista_final|1|Q3_nova|.|Q9", 
    "Entrevista_final|1|Q3_nova|0|Q6", "Entrevista_final|1|Q3_nova|0|Q6", 
    "Entrevista_final|1|Q3_nova|0|Q6", "Entrevista_final|1|Q3_nova|0|Q9", 
    "Entrevista_final|1|Q3_nova|0|Q9", "Entrevista_final|1|Q3_nova|0|Q9", 
    "Entrevista_final|1|Q3_nova|0|Q9", "Entrevista_final|1|Q3_nova|0|Q9", 
    "Entrevista_final|1|Q3_nova|0|Q9")), row.names = c(NA, -20L
), class = c("tbl_df", "tbl", "data.frame"))

How can i solve this?

r2evans
  • 141,215
  • 6
  • 77
  • 149
GonGas
  • 1
  • 1
  • 2
    We cant reproduce this error without your dataset. Could you paste it in to the question or use a fuller set of simulated data? – Andy Baxter Feb 15 '23 at 12:44
  • 3
    It would be easier to help you if you provide [a minimal reproducible example](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) which means to include a snippet of all data necessary to run your code. Also, it would be helpful to describe clearly what's the issue and include any error messages you get. As is I can only say that `geom_point(data=Q6med, x=var, y=mean)` looks weird and should probably be `geom_point(data=Q6med, aes(x=var, y=mean))`. – stefan Feb 15 '23 at 12:48
  • 1
    Please provide enough code so others can better understand or reproduce the problem. – Community Feb 15 '23 at 13:48
  • My dataset is save as a excel file, how can I put it here so someone can help? – GonGas Feb 15 '23 at 14:36
  • 1
    @GonGas, please read https://stackoverflow.com/q/5963269 for examples on how to use `dput` to post a sample of your data. Depending on the variability of your data, I suggest something like `dput(head(freq, 20))` (and same for `med`), ensuring that there are enough of each of your factors to be able to plot something. If there are many columns, only include columns being used here. Feel free to use something other than `head`, for example hand-picking rows to ensure we have the variability needed to best demo a plot. – r2evans Feb 15 '23 at 14:46
  • @r2evans i've done the dput not sure if it is right – GonGas Feb 16 '23 at 14:39
  • Can I get any help? I really can get this to work – GonGas Feb 27 '23 at 10:13

0 Answers0