I am trying to facet wrap with two variables, but once I add the variable "Group" I get this error: Error in sanitise_dim(nrow) : object 'Group' not found
Here is my dataframe:
dput(df)
structure(list(Condition = c("A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B"), Gate = structure(c(1L, 1L,
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L,
4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 1L, 1L, 2L, 2L,
3L, 3L, 4L, 4L, 5L, 5L), .Label = c("Gate 0", "Gate 1", "Gate 2",
"Gate 3", "Full"), class = "factor"), Modality = c("AO", "AO",
"AO", "AV", "AV", "AV", "AO", "AO", "AO", "AV", "AV", "AV", "AO",
"AO", "AO", "AV", "AV", "AV", "AO", "AO", "AO", "AV", "AV", "AV",
"AO", "AO", "AO", "AV", "AV", "AV", "AO", "AV", "AO", "AV", "AO",
"AV", "AO", "AV", "AO", "AV"), Participant = c(1, 2, 4, 1, 2,
4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2,
4, 1, 2, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3), Group = c("Group 2",
"Group 1", "Group 2", "Group 2", "Group 1", "Group 2", "Group 2",
"Group 1", "Group 2", "Group 2", "Group 1", "Group 2", "Group 2",
"Group 1", "Group 2", "Group 2", "Group 1", "Group 2", "Group 2",
"Group 1", "Group 2", "Group 2", "Group 1", "Group 2", "Group 2",
"Group 1", "Group 2", "Group 2", "Group 1", "Group 2", "Group 1",
"Group 1", "Group 1", "Group 1", "Group 1", "Group 1", "Group 1",
"Group 1", "Group 1", "Group 1"), Accuracy = c(0, 0.5, 0, 0,
0, 0.3, 0, 0.5, 0.7, 0.1, 0.5, 0.7, 0.2, 0.8, 0.7, 0.2, 0.8,
0.9, 0.2, 0.9, 0.9, 0.4, 0.9, 1, 0.4, 1, 0.9, 0.3, 1, 1, 0, 0,
0.2, 0.2, 0.2, 0.4, 0.6, 0.7, 0.6, 0.7), se = c(0, 0.166666666666667,
0, 0, 0, 0.152752523165195, 0, 0.166666666666667, 0.152752523165195,
0.1, 0.166666666666667, 0.152752523165195, 0.133333333333333,
0.133333333333333, 0.152752523165195, 0.133333333333333, 0.133333333333333,
0.1, 0.133333333333333, 0.1, 0.1, 0.163299316185545, 0.1, 0,
0.163299316185545, 0, 0.1, 0.152752523165195, 0, 0, 0, 0, 0.133333333333333,
0.133333333333333, 0.133333333333333, 0.163299316185545, 0.163299316185545,
0.152752523165195, 0.163299316185545, 0.152752523165195)), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -40L), groups = structure(list(
Condition = c("A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B"), Gate = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L,
3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 1L,
1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L), .Label = c("Gate 0",
"Gate 1", "Gate 2", "Gate 3", "Full"), class = "factor"),
Modality = c("AO", "AO", "AO", "AV", "AV", "AV", "AO", "AO",
"AO", "AV", "AV", "AV", "AO", "AO", "AO", "AV", "AV", "AV",
"AO", "AO", "AO", "AV", "AV", "AV", "AO", "AO", "AO", "AV",
"AV", "AV", "AO", "AV", "AO", "AV", "AO", "AV", "AO", "AV",
"AO", "AV"), Participant = c(1, 2, 4, 1, 2, 4, 1, 2, 4, 1,
2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2,
4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3), .rows = structure(list(
1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L,
14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L,
25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L,
36L, 37L, 38L, 39L, 40L), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -40L), .drop = TRUE))
And here is the code I am running:
df%>%
group_by(Condition, Gate = fct_inorder(Gate), Modality, Group) %>%
dplyr::summarize(Proportion_Correct = mean(Accuracy), #item-level: Accuracy = mean(Correct) --> participant-level: Proportion_Correct = mean(Accuracy)
standarderror = (sd(Accuracy, na.rm = TRUE)/sqrt(n()))) %>%
ggplot(aes(x = Gate, y = Proportion_Correct, color = Modality, group = Modality))
geom_line()
geom_errorbar(aes(ymin = Proportion_Correct - standarderror, ymax = Proportion_Correct standarderror), color = "Black", size = .15, width = .3)
geom_point(size = 2)
scale_y_continuous(labels = scales::percent)
labs(y= "Accuracy", x = "Gate")
facet_wrap(~Condition, Group)
theme_minimal()
scale_color_brewer(palette = "Set1")
ggtitle("Performance")
When I run this code, I get that error. I am hoping to get three graphs side by side. There should be two conditions for Group 1, and only one condition for Group 2. Any ideas are appreciated. Thank you!!
CodePudding user response:
I believe that in the facet wrap condition, when you use multiple variable names you separate them with " " sign and not a comma. So, your code should be:
df%>%
group_by(Condition, Gate = fct_inorder(Gate), Modality, Group) %>%
dplyr::summarize(Proportion_Correct = mean(Accuracy), #item-level: Accuracy = mean(Correct) --> participant-level: Proportion_Correct = mean(Accuracy)
standarderror = (sd(Accuracy, na.rm = TRUE)/sqrt(n()))) %>%
ggplot(aes(x = Gate, y = Proportion_Correct, color = Modality, group = Modality))
geom_line()
geom_errorbar(aes(ymin = Proportion_Correct - standarderror, ymax = Proportion_Correct standarderror), color = "Black", size = .15, width = .3)
geom_point(size = 2)
scale_y_continuous(labels = scales::percent)
labs(y= "Accuracy", x = "Gate")
facet_wrap(~Condition Group)
theme_minimal()
scale_color_brewer(palette = "Set1")
ggtitle("Performance")