R Multiple T-test: Grouping factor must have 2 variables - r

I'm trying to compare a control group with an experimental group on a range of variable to show that they are similar (baseline).
I thus need to do multiple t-test (unpaired/ Welch t-test). My data is in a long format with the first variable called "Group" with either a number 1 or a number 2. There are some missing values in some of my other variables but it's pretty random.
So when I run t-test manually using this line of code:
t.test(variable_1 ~ Group,df)
it works.
I then tried to do it all at once using this line of code:
sapply(df[,2:71], function(i) t.test(i ~ df$Group)$p.value)
But I get the following error:
grouping factor must have exactly 2 levels
Could anyone help?
Here is what the structure looks like
structure(list(Group = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 2, 2), EM_Accuracy_Time_Airport = c(3, 3, 0,
1, 1, 2, 2, 1, 1, 3, 3, 2, 2, 2, 1, 3, 1, 3, 1, 1), EM_Accuracy_Place_Airport = c(2,
2, 1, 2, 1, 2, 2, 1, 1, 2, 0, 2, 2, 0, 2, 2, 2, 1, 1, 1), EM_Accuracy_Expl_Airport = c(2,
2, 2, 0, 2, 2, 2, 1, 2, 2, 2, 2, 2, 0, 0, 1, 0, 2, 2, 1), EM_Accuracy_Death_Airport = c(0,
2, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0), EM_Accuracy_Time_Metro = c(3,
1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 2, 1, 3, 1, 1, 2, 1, 3, 3), EM_Accuracy_Death_Metro = c(3,
0, 1, 0, 1, 1, 0, 0, 0, 3, 0, 0, 1, 0, 3, 1, 1, 1, 0, 0), EM_Accuracy_PC_Time_Airpot = c(100,
100, 0, 33.3333333333333, 33.3333333333333, 66.6666666666667,
66.6666666666667, 33.3333333333333, 33.3333333333333, 100, 100,
66.6666666666667, 66.6666666666667, 66.6666666666667, 33.3333333333333,
100, 33.3333333333333, 100, 33.3333333333333, 33.3333333333333
), EM_Accuracy_PC_Place_Airport = c(100, 100, 50, 100, 50, 100,
100, 50, 50, 100, 0, 100, 100, 0, 100, 100, 100, 50, 50, 50),
EM_Accuracy_PC_Expl_Airport = c(100, 100, 100, 0, 100, 100,
100, 50, 100, 100, 100, 100, 100, 0, 0, 50, 0, 100, 100,
50), EM_Accuracy_PC_Death_Airport = c(0, 66.6666666666667,
0, 0, 33.3333333333333, 66.6666666666667, 0, 0, 0, 0, 0,
0, 66.6666666666667, 0, 0, 0, 100, 0, 0, 0), EM_Accuracy_PC_Time_Metro = c(100,
33.3333333333333, 0, 0, 33.3333333333333, 33.3333333333333,
0, 33.3333333333333, 33.3333333333333, 33.3333333333333,
33.3333333333333, 66.6666666666667, 33.3333333333333, 100,
33.3333333333333, 33.3333333333333, 66.6666666666667, 33.3333333333333,
100, 100), EM_Accuracy_PC_Death_Metro = c(100, 0, 33.3333333333333,
0, 33.3333333333333, 33.3333333333333, 0, 0, 0, 100, 0, 0,
33.3333333333333, 0, 100, 33.3333333333333, 33.3333333333333,
33.3333333333333, 0, 0), EM_ACCURACY_PC = c(83.3333333333333,
66.6666666666667, 30.5555555555556, 22.2222222222222, 47.2222222222222,
66.6666666666666, 44.4444444444444, 27.7777777777778, 36.1111111111111,
72.2222222222222, 38.8888888888889, 55.5555555555555, 66.6666666666666,
27.7777777777778, 44.4444444444444, 52.7777777777778, 55.5555555555556,
52.7777777777778, 47.2222222222222, 38.8888888888889), EM_Certainty_Time_Airport = c(3,
1, 1, 1, 2, 2, 1, 1, 2, 3, 3, 2, 2, 2, 4, 2, 3, 3, 2, 2),
EM_Certainty__Place_Airport = c(3, 4, 2, 2, 2, 2, 4, 1, 3,
4, 4, 4, 4, 3, 3, 4, 4, 3, 2, 3), EM_Certainty__Expl_Airport = c(4,
2, 3, 1, 2, 3, 2, 1, 2, 4, 1, 3, 2, 2, 1, 3, 1, 2, 2, 3),
EM_Certainty__Death_Airport = c(1, 1, NA, 1, 2, 1, 3, 1,
2, 3, NA, 3, 2, 1, 2, 1, 1, 1, 4, 4), EM_Certainty__Time_Metro = c(3,
3, 1, 1, 2, 2, 2, 1, 3, 2, 3, 2, 3, 2, 2, 2, 3, 1, 2, 2),
EM_Certainty__Death_Metro = c(2, 1, 1, NA, 2, 1, 1, 1, 2,
1, NA, 3, 2, 1, 1, 1, 1, 1, 1, 4), EM_CERTAINTY = c(2.66666666666667,
2, 1.6, 1.2, 2, 1.83333333333333, 2.16666666666667, 1, 2.33333333333333,
2.83333333333333, 2.75, 2.83333333333333, 2.5, 1.83333333333333,
2.16666666666667, 2.16666666666667, 2.16666666666667, 1.83333333333333,
2.16666666666667, 3), EM_CONFIDENCE = c(5, 5, 1, 2, 2, 4,
5, 2, 3, 4, 5, 5, 3, 3, 4, 4, 3, 2, 3, 2), FBM_CONFIDENCE = c(4,
6, 7, 7, 5, 4, 2, 7, 5, 6, 6, 7, 6, 7, 3, 6, 6, 4, 5, 6),
FBM_Vividness_Time = c(3, 3, 1, 4, 3, 2, 4, 3, 4, 4, 1, 3,
4, 4, 3, 3, 3, 2, 4, 3), FBM_Vividness_How = c(4, 4, 2, 4,
4, 3, 4, 4, 4, 4, 3, 4, 3, 4, 4, 4, 4, 4, 4, 4), FBM_Vividness_Where = c(4,
4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4),
FBM_Vividness_WithWhom = c(4, 4, 3, 4, 3, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4), FBM_Vividness_WereDoing = c(4,
4, 1, 4, 3, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4),
FBM_Vividness_Did_After = c(4, 4, 3, 4, 2, 3, 4, 4, 2, 4,
1, 4, 4, 4, 3, 4, 4, 3, 4, 4), FBM_VIVIDNESS = c(3.83333333333333,
3.83333333333333, 2, 4, 3.16666666666667, 3.33333333333333,
4, 3.83333333333333, 3.66666666666667, 4, 2.33333333333333,
3.83333333333333, 3.83333333333333, 4, 3.66666666666667,
3.83333333333333, 3.83333333333333, 3.5, 4, 3.83333333333333
), FBM_Details_NB_T2 = c(3, 5, 0, 5, 5, 5, 2, 5, 1, 5, 3,
5, 5, 5, 2, 4, 2, 3, 5, 5), P_Novelty_5 = c(5, 6.2, 6.5,
5.6, 4.8, 5.4, 4, 4.2, 4.4, 5.8, 3.4, 5.8, 6, 5.8, 3.8, 6.4,
6.8, 6.6, 7, 3), P_Suprise_emotion = c(6, 6, 6, 6, 4, 5,
1, 7, 1, 5, 4, 5, 7, 7, 6, 4, 7, 7, 2, 5), P_Surprise_Expected = c(1,
3, 5, 2, 4, 3, 6, 2, 2, 1, 6, 4, 3, 1, 5, 1, 1, 1, 5, 4),
P_Surprise_Unbelievable = c(5, 4, 1, 6, 4, 4, 2, 7, 1, 4,
1, 6, 7, 7, 6, 3, 7, 7, 5, 3), `P_Consequence-Importance_5` = c(5.6,
4.8, 3.4, 5, 4.8, 4, 5, 5.4, 3, 5.2, 6.8, 5.4, 4, 4.4, 6,
3.8, 4, 4.8, 5, 5.2), P_Emotional_Intensity_4 = c(5.25, 5.75,
3, 4.75, 4.75, 6, 4, 5.25, 2.5, 5.5, 7, 6.5, 5.75, 6.75,
6.75, 6, 6.25, 6, 5, 2.5), P_Social_Sharing_6 = c(3.66666666666667,
3.83333333333333, 3.4, 3.16666666666667, 3, 3.33333333333333,
3.8, 3.16666666666667, 2.16666666666667, 4.16666666666667,
4, 4.5, 4.5, 4.33333333333333, 4, 3.16666666666667, 3.66666666666667,
4, NA, NA), P_Media_3 = c(4.66666666666667, 4, 3, 2.66666666666667,
2.66666666666667, 2.33333333333333, 3, 2.33333333333333,
2.33333333333333, 3.33333333333333, 4.33333333333333, 5,
4.33333333333333, 5, 4, 2, 3, 3.33333333333333, 2, 1.66666666666667
), P_Ruminations = c(3, NA, 3, 2, 4, NA, 4, 2, 1, 4, 4, 4,
2, 4, 2, 3, 3, 3, 4, 3), P_Novelty_Common_rev = c(6, 7, 7,
7, 4, 6, 4, 7, 2, 6, 3, 7, 7, 7, 3, 6, 7, 7, 7, 3), P_Novelty_Unusual = c(2,
5, 7, 7, 3, 5, 3, 3, 5, 6, 1, 4, 7, 1, 4, 6, 6, 6, 7, 2),
P_Novelty_Special = c(6, 6, NA, 6, 5, 5, 4, 3, 5, 4, 1, 5,
6, 7, 4, 6, 7, 7, 7, 3), P_Novelty_Singular = c(4, 6, 5,
1, 5, 5, 4, 1, 3, 6, 5, 6, 4, 7, 3, 7, 7, 6, 7, 2), P_Novelty_Ordinary_rev = c(7,
7, 7, 7, 7, 6, 5, 7, 7, 7, 7, 7, 6, 7, 5, 7, 7, 7, 7, 5),
P_Consequence = c(6, 7, 5, 4, 5, 4, 5, 3, 5, 5, 7, 5, 5,
2, 6, 6, 1, 4, 6, 3), P_Importance_self = c(4, 3, 3, 4, 4,
3, 5, 6, 1, 5, 7, 5, 3, 3, 5, 2, 2, 4, 5, 3), `P_Importance_friends&family` = c(4,
4, 3, 4, 4, 4, 4, 6, 1, 5, 6, 5, 3, 3, 5, 2, 6, 4, 5, 10),
P_Importance_Belgium = c(7, 5, 3, 7, 6, 5, 6, 7, 3, 7, 7,
7, 5, 7, 7, 5, 6, 7, 6, 6), P_Importance_International = c(7,
5, 3, 6, 5, 4, 5, 5, 5, 4, 7, 5, 4, 7, 7, 4, 5, 5, 3, 4),
P_Emotional_Intensity_Upset = c(4, 5, NA, 3, 3, 5, 3, 5,
2, 5, 7, 5, 5, 6, 7, 6, 6, 5, 5, 3), P_Emotional_Intensity_Indiferent_rev = c(7,
7, 5, 7, 6, 7, 4, 6, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, NA, 4),
P_Emotional_Intensity_Affected = c(6, 6, 3, 5, 5, 6, 5, 6,
2, 5, 7, 7, 5, 7, 7, 6, 6, 6, NA, 2), P_Emotional_Intensity_Shaken = c(4,
5, 1, 4, 5, 6, 4, 4, 2, 5, 7, 7, 6, 7, 6, 5, 6, 6, 5, 1),
P_Rehearsal_Media_TV = c(5, 3, NA, 3, 2, 3, NA, 1, 1, 4,
3, 5, 5, 5, 2, 3, 2, 2, 2, 2), P_Rehearsal_Media_Internet = c(4,
4, 1, 3, 2, 2, 2, 4, 3, 2, 5, 5, 3, 5, 5, 1, 5, 4, 2, 1),
P_Rehearsal_Media_Social_Networks = c(5, 5, 5, 2, 4, 2, 4,
2, 3, 4, 5, 5, 5, 5, 5, 2, 2, 4, 2, 2), P_Social_Sharing_How_Often = c(4,
5, 4, 4, 4, 3, 3, 3, 3, 5, 4, 5, 5, 5, 5, 3, 4, 4, 5, NA),
P_Social_Sharing_With_How_Many_People = c(5, 4, NA, 3, 3,
3, 3, 3, 2, 5, 3, 5, 5, 3, 5, 3, 3, 4, 3, NA), PK_Shops_YN = c(0,
1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1),
PK_Comic = c(0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0,
0, 0, 0, 1, 0), PK_Hotel = c(0, 0, 0, 0, 1, 0, 0, 0, 0, 1,
0, 0, 1, 1, 0, 0, 0, 0, 0, 0), PK_Decoration_Maelbeek = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1),
PK_Stations_before_after_Maelbeek = c(0, 0.5, 0, 0, 0, 0,
0, 0, 0.5, 1, 0, 0, 0.5, 0.5, 0, 0, 0.5, 0, 0.5, 0), PK_TOTAL_PC = c(0,
50, 0, 40, 40, 40, 20, 0, 10, 60, 20, 40, 90, 70, 20, 0,
30, 20, 70, 40), SI_Attachment_BXL = c(6, 4, 1, 4, 2, 5,
1, 6, 5, 4, 2, 6, 6, 7, 1, 3, 6, 4, 5, 4), SI_Pride_BXL = c(1,
2, 1, 2, 1, 2, 1, 5, 1, 6, 1, 1, 7, 7, 1, 2, 6, 1, 3, 3),
SI_Attachment_Belgium = c(7, 3, 5, 5, 4, 6, 7, 6, 5, 6, 7,
7, 7, 7, 5, 6, 7, 6, 4, 2), SI_Pride_Belgium = c(7, 2, 6,
4, 2, 6, 4, 5, 1, 5, 1, 6, 7, 7, 5, 7, 7, 6, 2, 2), SI_Attachment_EU = c(6,
4, 2, 5, 4, 4, 5, 4, 7, 4, 1, 6, 7, 7, 5, 4, 6, 6, 2, 6),
SI_Pride_EU = c(7, 1, 1, 4, 3, 4, 4, 4, 1, 4, 1, 6, 7, 7,
4, 3, 6, 6, 2, 4)), .Names = c("Group", "EM_Accuracy_Time_Airport",
"EM_Accuracy_Place_Airport", "EM_Accuracy_Expl_Airport", "EM_Accuracy_Death_Airport",
"EM_Accuracy_Time_Metro", "EM_Accuracy_Death_Metro", "EM_Accuracy_PC_Time_Airpot",
"EM_Accuracy_PC_Place_Airport", "EM_Accuracy_PC_Expl_Airport",
"EM_Accuracy_PC_Death_Airport", "EM_Accuracy_PC_Time_Metro",
"EM_Accuracy_PC_Death_Metro", "EM_ACCURACY_PC", "EM_Certainty_Time_Airport",
"EM_Certainty__Place_Airport", "EM_Certainty__Expl_Airport",
"EM_Certainty__Death_Airport", "EM_Certainty__Time_Metro", "EM_Certainty__Death_Metro",
"EM_CERTAINTY", "EM_CONFIDENCE", "FBM_CONFIDENCE", "FBM_Vividness_Time",
"FBM_Vividness_How", "FBM_Vividness_Where", "FBM_Vividness_WithWhom",
"FBM_Vividness_WereDoing", "FBM_Vividness_Did_After", "FBM_VIVIDNESS",
"FBM_Details_NB_T2", "P_Novelty_5", "P_Suprise_emotion", "P_Surprise_Expected",
"P_Surprise_Unbelievable", "P_Consequence-Importance_5", "P_Emotional_Intensity_4",
"P_Social_Sharing_6", "P_Media_3", "P_Ruminations", "P_Novelty_Common_rev",
"P_Novelty_Unusual", "P_Novelty_Special", "P_Novelty_Singular",
"P_Novelty_Ordinary_rev", "P_Consequence", "P_Importance_self",
"P_Importance_friends&family", "P_Importance_Belgium", "P_Importance_International",
"P_Emotional_Intensity_Upset", "P_Emotional_Intensity_Indiferent_rev",
"P_Emotional_Intensity_Affected", "P_Emotional_Intensity_Shaken",
"P_Rehearsal_Media_TV", "P_Rehearsal_Media_Internet", "P_Rehearsal_Media_Social_Networks",
"P_Social_Sharing_How_Often", "P_Social_Sharing_With_How_Many_People",
"PK_Shops_YN", "PK_Comic", "PK_Hotel", "PK_Decoration_Maelbeek",
"PK_Stations_before_after_Maelbeek", "PK_TOTAL_PC", "SI_Attachment_BXL",
"SI_Pride_BXL", "SI_Attachment_Belgium", "SI_Pride_Belgium",
"SI_Attachment_EU", "SI_Pride_EU"), row.names = c(NA, -20L), class = c("tbl_df",
"tbl", "data.frame"))

The error you get means that there's a problem in your dataset, with at least one of your variables.
Here's a process to help you spot problematic variables:
library(tidyverse)
df %>%
group_by(Group) %>% # for each group value
summarise_all(~sum(!is.na(.))) %>% # count non NA values for each variable
gather(var,value,-Group) %>% # reshape
spread(Group, value, sep = "_") %>% # reshape
filter(Group_2 < 2) # get problematic variables
# # A tibble: 5 x 3
# var Group_1 Group_2
# <chr> <int> <int>
# 1 P_Emotional_Intensity_Affected 18 1
# 2 P_Emotional_Intensity_Indiferent_rev 18 1
# 3 P_Social_Sharing_6 18 0
# 4 P_Social_Sharing_How_Often 18 1
# 5 P_Social_Sharing_With_How_Many_People 17 1
0 counts will throw an error about needing two levels in your grouping variables.
1 count will throw an error about needing more observations in one of your groups.
After spotting those you have to treat them accordingly and then your original t.test code should work.

So my problem was just missing data in one variable.
However, if you are looking at doing multiple T-test in a long format: this line of code works:
sapply(df[,2:71], function(i) t.test(i ~ df$Group)$p.value)

Related

Clean up list output within RStudio when using lapply() or sapply()

I have a function that I am using with lapply().
lapply(x, function(x))
The output looks like this:
[[1]]
[1] "att_admire"
[[2]]
[1] "att_hypocrisy"
[[3]]
[1] "att_annoyed"
[[4]]
[1] ""
[[5]]
[1] "att_respectvalues"
When I use sapply(), it looks like this:
att_admire att_hypocrisy att_annoyed att_judge
"att_admire" "att_hypocrisy" "att_annoyed" ""
att_respectvalues
"att_respectvalues"
I would like the output to look neater, like this. Only the variable names should be included, not the "" or indices.
att_admire, att_hypocrisy, att_annoyed, att_respectvalues
What can I do to modify the code I have? I looked at this question, but it focuses on how to get cleaner results in an output file, whereas I would prefer for the output to look cleaner in RStudio itself.
Below, I have included the function I am using and a sample of the data.
Libraries:
install.packages("lavaan")
library(lavaan)
Main command:
iv <- "consistent"
dv <- "behavior_solarize"
mediators <- c("att_admire", "att_hypocrisy", "att_annoyed", "att_judge", "att_respectvalues")
lapply(mediators, med_overall)
Function (using "lavaan" package):
med_overall <- function(mediator) {
mediation.model <-
paste("
# mediator
",mediator," ~ a * ",iv,"
",dv," ~ b * ",mediator,"
# direct effect
",dv," ~ c * ",iv,"
# indirect effect (a*b)
ab := a*b
# total effect
total := c + (a*b)")
fit <- sem(mediation.model, data = df, meanstructure = TRUE,
se = "boot", bootstrap = 500)
val <- parameterEstimates(fit)
ifelse(val[10,8] < 0.05, mediator, "")}
Sample data:
structure(list(behavior_solarize = c(5, 5, 5, 3, 3, 3, 5, 6,
7, 5, 6, 7, 4, 3, 6, 4, 5, 6, 2, 4, 4, 5, 5, 5, 6, 2, 6, 2, 2,
1, 5, 5, 5, 5, 1, 5, 1, 5, 1, 6, 4, 2, 6, 6, 7, 6, 5, 5, 6, 5,
1, 4, 1, 6, 7, 6, 6, 3, 4, 2, 6, 7, 6, 1, 1, 2, 2, 5, 5, 4, 6,
3, 2, 5, 6, 1, 6, 2, 2, 6, 5, 3, 2, 3, 5, 1, 2, 1, 5, 4, 4, 5,
4, 3, 6, 5, 5, 5, 1, 4, 5, 5, 4, 6, 6, 2, 7, 6, 5, 2, 5, 4, 1,
7, 2, 2, 5, 4, 6, 6, 1, 6, 1, 2, 5, 6, 6, 6, 2, 1, 2, 3, 6, 4,
5, 4, 6, 4, 4, 5, 6, 4, 5, 1, 2, 6, 2, 5, 5, 4, 2, 5, 2, 5, 5,
6, 5, 2, 1, 1, 4, 7, 5, 6, 2, 5, 3, 2, 3, 3, 6, 5, 5, 5, 2, 5,
5, 5, 2, 2, 1, 2, 6, 5, 4, 3, 4, 4, 5, 3, 5, 2, 6, 3, 7, 5, 2,
1, 3, 2, 2, 5, 4, 1, 5, 7, 2, 7, 1, 6, 3, 7, 5, 1, 5, 6, 2, 5,
2, 6, 7, 5, 5, 2, 7, 2, 6, 5, 6, 3, 2, 2, 3, 3, 3, 5, 2, 5, 4,
5, 1, 1, 6, 4, 3, 3, 6, 5, 5, 3, 6, 3, 6, 4, 1, 1, 4, 7, 2, 2,
3, 1, 2, 5, 6, 1, 3, 4, 4, 1, 5, 6, 4, 1, 2, 3, 5, 4, 4, 5, 5,
5, 4, 3, 5, 5, 7, 4, 6, 4, 6, 6, 5, 1, 5, 2, 2, 6, 1, 4, 6, 5,
6, 2, 2, 5, 4, 6, 2, 5, 5, 1, 6, 5, 3, 5, 2, 6, 6, 2, 6, 7, 5,
3, 6, 5, 5, 5, 4, 6, 4, 6, 6, 5, 4, 2, 6, 6, 6, 1, 3, 2, 6, 3,
3, 4, 3, 6, 6, 7, 5, 7, 6, 5, 1, 3, 6, 2, 6, 6, 2, 6, 3, 4, 6,
7, 4, 6, 4, 6, 6, 6, 1, 4, 4, 3, 2, 6, 7, 5, 3, 1, 6, 4, 5, 3,
4, 6, 5, 7, 3, 4, 2, 1, 6, 1, 4, 2, 2, 6, 4, 6, 3, 3, 2, 5, 6,
5, 1, 5, 7, 6, 4, 5, 2, 2, 4, 1, 4, 5, 1, 7, 2, 6, 4, 3, 6, 6,
4, 4, 4, 1, 6, 3, 6, 7, 5, 3, 4, 1, 3, 5, 6, 4, 5, 2, 6, 5, 5,
7, 5, 7, 7, 3, 5, 5, 5, 5, 4, 3, 5, 6, 3, 5, 7, 5, 5, 5, 4, 5,
2, 3, 6, 7, 7, 5, 4, 5, 5, 2, 1, 6, 2, 7, 5, 6, 6, 5, 2, 5, 2,
4, 5, 3, 3, 4, 3, 6, 7, 7, 2, 5, 5, 2, 5, 2, 3, 6, 5, 5, 6, 4,
5, 5, 3, 2, 7, 3, 5, 4, 1, 4, 3, 6, 4, 1, 6, 7, 2, 4, 2, 1, 6,
7, 5, 2, 4, 6, 3, 5, 5, 4, 7, 4, 5, 4, 6, 2, 1, 3, 2, 7, 2, 2,
2, 5, 5, 5, 2, 7, 5, 3, 5, 6, 7, 4, 6, 6, 5, 5, 6, 1, 1, 6, 1,
3, 2, 2, 3, 2, 5, 5, 6, 2, 4, 7, 6, 2, 2, 5, 3, 5, 4, 5, 7, 1,
3, 4, 7, 4, 5, 6, 4, 6, 5, 3, 3, 5, 2, 4, 6, 1, 2, 5, 1, 5, 6,
6, 5, 6, 5, 4, 1, 6, 4, 1, 6, 2, 7, 1, 2, 4, 4, 6, 1, 5, 4, 7,
3, 2, 2, 6, 5, 1, 6, 2, 3, 6, 5, 5, 2, 5, 2, 3, 6, 4, 5, 5, 4,
5, 1, 5, 6, 2, 6, 1, 1, 5, 2, 3, 7, 6, 6, 6, 4, 7, 5, 7, 6, 2,
4, 5, 4, 6, 5, 5, 5, 3, 5, 5, 2, 3, 6), consistent = c(1, 0,
1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0,
1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1,
0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1,
0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1,
0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1,
0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1,
0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0,
1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1,
0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1,
0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1,
0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1,
0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,
0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1,
1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1,
1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1,
1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1,
0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0,
0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0,
0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0), att_admire = c(4,
2, 6, 5, 4, 4, 6, 6, 4, 4, 5, 6, 4, 3, 6, 4, 3, 5, 3, 4, 4, 3,
4, 5, 6, 3, 4, 2, 3, 4, 6, 3, 4, 4, 1, 5, 1, 4, 1, 4, 1, 4, 6,
5, 4, 4, 4, 7, 2, 3, 4, 4, 7, 4, 4, 4, 5, 3, 3, 7, 4, 3, 4, 2,
4, 3, 4, 4, 6, 1, 1, 4, 4, 5, 4, 1, 6, 4, 4, 6, 6, 4, 1, 4, 5,
4, 1, 1, 5, 7, 3, 1, 7, 5, 7, 4, 4, 4, 1, 1, 4, 3, 2, 5, 3, 1,
6, 4, 3, 7, 4, 2, 1, 6, 3, 3, 1, 1, 5, 4, 1, 6, 1, 2, 4, 4, 5,
6, 4, 1, 4, 1, 4, 7, 5, 4, 5, 7, 5, 4, 5, 5, 4, 1, 3, 5, 3, 4,
6, 4, 4, 5, 1, 5, 6, 1, 7, 4, 1, 2, 5, 5, 4, 5, 4, 1, 4, 1, 1,
3, 4, 5, 4, 2, 1, 7, 3, 3, 1, 1, 2, 2, 5, 4, 4, 2, 3, 4, 6, 3,
6, 2, 5, 4, 7, 5, 1, 1, 2, 2, 3, 5, 4, 4, 4, 6, 1, 3, 1, 7, 3,
4, 4, 4, 3, 7, 1, 6, 1, 5, 1, 6, 4, 1, 7, 1, 4, 4, 5, 5, 3, 5,
4, 2, 5, 4, 1, 5, 5, 4, 1, 2, 7, 4, 2, 3, 4, 5, 6, 2, 7, 5, 4,
3, 2, 2, 1, 4, 1, 3, 4, 1, 3, 3, 3, 2, 4, 5, 3, 3, 6, 5, 4, 7,
6, 4, 4, 5, 4, 3, 4, 4, 4, 1, 1, 7, 7, 4, 6, 4, 6, 5, 4, 1, 4,
3, 5, 4, 3, 4, 4, 3, 4, 7, 4, 4, 4, 5, 1, 3, 3, 1, 4, 3, 1, 4,
3, 4, 5, 2, 4, 6, 7, 1, 7, 3, 3, 1, 4, 5, 3, 5, 6, 3, 4, 5, 5,
6, 5, 1, 3, 3, 5, 4, 4, 6, 1, 7, 5, 1, 4, 4, 5, 3, 1, 2, 6, 2,
4, 6, 6, 5, 4, 1, 5, 6, 4, 4, 4, 4, 7, 6, 1, 2, 4, 2, 1, 4, 7,
4, 4, 1, 6, 5, 5, 3, 4, 7, 5, 7, 5, 4, 3, 1, 4, 2, 4, 4, 1, 4,
1, 5, 3, 5, 4, 6, 4, 4, 4, 5, 6, 5, 4, 5, 1, 3, 4, 2, 1, 1, 3,
1, 3, 5, 4, 4, 2, 2, 1, 1, 3, 4, 3, 3, 5, 7, 3, 3, 3, 2, 3, 5,
4, 3, 5, 4, 6, 4, 3, 7, 3, 6, 7, 4, 4, 4, 4, 3, 5, 4, 4, 4, 2,
4, 6, 3, 6, 4, 4, 5, 6, 5, 5, 6, 7, 5, 4, 4, 2, 2, 1, 7, 2, 7,
2, 6, 7, 4, 2, 3, 5, 1, 4, 4, 3, 1, 2, 6, 6, 7, 1, 5, 6, 4, 6,
2, 4, 3, 5, 6, 4, 4, 4, 4, 4, 4, 7, 3, 2, 4, 6, 5, 3, 1, 4, 1,
4, 4, 3, 4, 1, 1, 5, 7, 4, 1, 1, 4, 3, 4, 4, 4, 7, 2, 5, 4, 5,
3, 1, 5, 2, 5, 1, 4, 4, 4, 3, 7, 4, 3, 4, 1, 4, 5, 2, 6, 5, 1,
5, 2, 5, 1, 1, 5, 1, 4, 3, 2, 4, 3, 5, 1, 5, 2, 4, 7, 7, 1, 2,
7, 3, 4, 5, 4, 5, 1, 1, 5, 2, 4, 4, 5, 4, 5, 2, 3, 2, 2, 5, 4,
5, 1, 2, 5, 1, 3, 7, 4, 3, 4, 5, 4, 3, 5, 4, 1, 4, 4, 6, 3, 1,
4, 4, 6, 1, 4, 4, 5, 4, 3, 2, 6, 4, 1, 4, 5, 2, 4, 4, 4, 3, 5,
3, 6, 5, 3, 5, 4, 4, 5, 1, 4, 3, 1, 4, 3, 6, 5, 3, 1, 6, 6, 4,
6, 1, 7, 5, 4, 4, 3, 4, 3, 3, 6, 3, 5, 5, 2, 2, 5, 3, 1, 6),
att_hypocrisy = c(4, 5, 7, 2, 5, 6, 3, 1, 1, 3, 3, 1, 4,
5, 6, 4, 3, 7, 6, 1, 4, 1, 1, 5, 1, 3, 2, 6, 7, 3, 1, 3,
7, 1, 7, 3, 7, 1, 7, 2, 3, 6, 1, 1, 1, 3, 5, 1, 7, 3, 7,
5, 7, 4, 1, 1, 2, 6, 6, 3, 1, 5, 1, 6, 4, 6, 2, 1, 1, 7,
1, 4, 3, 1, 2, 7, 1, 1, 1, 1, 1, 2, 6, 4, 1, 4, 7, 7, 2,
1, 1, 1, 1, 3, 5, 6, 3, 1, 1, 1, 2, 1, 7, 2, 2, 1, 1, 3,
5, 1, 1, 1, 1, 1, 4, 2, 2, 4, 1, 1, 6, 1, 4, 6, 1, 4, 1,
1, 4, 3, 5, 5, 1, 3, 5, 5, 1, 6, 1, 1, 4, 3, 5, 7, 2, 3,
4, 1, 1, 4, 4, 1, 1, 4, 1, 4, 4, 6, 7, 5, 2, 1, 4, 1, 6,
7, 5, 7, 7, 6, 2, 7, 1, 4, 1, 6, 2, 3, 1, 7, 7, 6, 2, 4,
2, 3, 1, 6, 1, 4, 1, 5, 1, 5, 1, 3, 7, 7, 6, 5, 6, 1, 7,
6, 3, 1, 6, 5, 6, 1, 6, 1, 4, 5, 1, 1, 2, 1, 7, 2, 5, 1,
4, 7, 1, 7, 6, 2, 1, 4, 5, 5, 1, 7, 3, 2, 7, 2, 1, 3, 1,
4, 1, 6, 2, 1, 2, 3, 1, 2, 1, 3, 3, 6, 6, 4, 7, 4, 5, 6,
6, 4, 5, 6, 1, 6, 2, 1, 4, 5, 1, 2, 3, 1, 1, 5, 2, 3, 2,
1, 2, 3, 7, 1, 1, 1, 1, 2, 1, 3, 2, 2, 4, 7, 5, 6, 2, 4,
5, 6, 2, 7, 1, 5, 4, 4, 1, 6, 1, 4, 4, 7, 3, 5, 7, 2, 7,
5, 1, 6, 2, 1, 1, 7, 1, 1, 6, 1, 5, 5, 4, 1, 1, 4, 4, 2,
5, 1, 2, 4, 4, 4, 6, 1, 2, 2, 7, 1, 1, 5, 1, 1, 3, 7, 7,
6, 1, 5, 6, 5, 2, 4, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 7, 1,
3, 3, 7, 1, 1, 1, 2, 1, 5, 4, 2, 5, 1, 1, 2, 1, 3, 1, 6,
1, 7, 3, 1, 6, 7, 1, 4, 4, 2, 3, 4, 3, 5, 1, 1, 1, 5, 1,
4, 5, 7, 3, 2, 7, 6, 7, 7, 1, 7, 1, 6, 4, 4, 2, 4, 3, 3,
5, 4, 1, 1, 1, 6, 6, 7, 7, 5, 1, 5, 2, 4, 4, 1, 4, 2, 2,
6, 1, 7, 5, 4, 5, 3, 6, 3, 3, 2, 3, 6, 7, 1, 6, 1, 1, 4,
1, 3, 3, 2, 1, 1, 1, 6, 6, 5, 6, 5, 5, 5, 1, 1, 1, 1, 3,
7, 1, 2, 7, 1, 5, 3, 7, 1, 1, 2, 1, 2, 4, 1, 6, 3, 6, 5,
1, 1, 4, 1, 2, 3, 4, 6, 4, 1, 6, 2, 4, 3, 2, 5, 2, 6, 1,
5, 1, 6, 3, 4, 2, 1, 1, 4, 6, 4, 4, 6, 1, 2, 5, 1, 7, 3,
4, 1, 5, 1, 4, 7, 1, 6, 6, 4, 5, 6, 1, 3, 7, 4, 7, 2, 1,
7, 1, 2, 1, 1, 3, 1, 7, 6, 1, 7, 4, 6, 6, 1, 2, 4, 6, 2,
7, 2, 1, 2, 5, 6, 1, 1, 5, 2, 5, 1, 1, 7, 1, 3, 1, 1, 1,
5, 1, 5, 2, 7, 6, 4, 1, 4, 7, 6, 6, 7, 6, 6, 2, 2, 6, 3,
5, 3, 1, 4, 4, 1, 2, 6, 7, 3, 5, 5, 1, 7, 2, 5, 7, 1, 6,
1, 2, 4, 5, 5, 6, 4, 3, 1, 4, 6, 3, 5, 3, 1, 2, 1, 3, 1,
2, 5, 3, 5, 7, 4, 6, 6, 2, 5, 6, 1, 6, 5, 5, 1, 1, 5, 3,
1, 7, 2, 4, 1, 7, 2, 5, 5, 4, 6, 2, 1, 6, 2), att_annoyed = c(5,
5, 4, 3, 3, 2, 3, 1, 1, 2, 3, 1, 4, 4, 4, 4, 3, 6, 5, 1,
4, 3, 1, 4, 1, 3, 2, 6, 3, 3, 3, 4, 5, 5, 7, 2, 4, 3, 2,
2, 3, 4, 1, 1, 1, 1, 4, 1, 5, 5, 4, 4, 7, 4, 5, 1, 2, 5,
3, 1, 1, 5, 2, 6, 2, 5, 5, 1, 1, 7, 1, 3, 4, 2, 1, 7, 1,
5, 1, 3, 2, 3, 5, 2, 1, 1, 1, 5, 5, 1, 1, 1, 1, 3, 1, 3,
1, 2, 5, 1, 1, 2, 5, 2, 4, 1, 1, 3, 4, 1, 1, 5, 1, 1, 2,
5, 2, 3, 2, 1, 6, 1, 1, 3, 1, 3, 1, 1, 5, 2, 3, 3, 1, 2,
3, 3, 1, 1, 4, 1, 2, 2, 1, 7, 7, 2, 6, 2, 1, 4, 4, 3, 1,
4, 2, 6, 2, 2, 7, 5, 2, 1, 4, 1, 6, 5, 5, 7, 6, 5, 2, 4,
1, 7, 7, 2, 2, 4, 5, 6, 6, 5, 2, 5, 2, 2, 1, 5, 2, 5, 2,
2, 1, 5, 1, 2, 7, 7, 6, 5, 6, 2, 4, 1, 2, 1, 5, 1, 7, 1,
4, 1, 4, 5, 1, 2, 3, 1, 6, 3, 1, 1, 2, 4, 1, 6, 1, 1, 1,
5, 5, 1, 3, 3, 3, 5, 6, 1, 1, 4, 1, 6, 1, 4, 1, 1, 2, 1,
1, 2, 1, 3, 2, 4, 6, 1, 4, 4, 4, 4, 5, 4, 5, 3, 2, 4, 3,
1, 1, 5, 1, 1, 3, 1, 1, 4, 3, 3, 2, 1, 2, 3, 7, 1, 1, 1,
1, 2, 1, 4, 1, 2, 4, 7, 3, 5, 2, 1, 5, 5, 2, 1, 1, 1, 6,
4, 5, 3, 3, 5, 5, 7, 2, 5, 6, 1, 6, 4, 1, 5, 2, 1, 1, 7,
1, 2, 4, 1, 3, 3, 5, 1, 1, 1, 1, 2, 2, 1, 2, 4, 7, 5, 7,
3, 3, 2, 7, 1, 1, 2, 1, 1, 6, 2, 7, 5, 1, 5, 1, 6, 2, 1,
2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 7, 1, 1, 5, 2, 1, 1, 1, 3,
7, 4, 3, 2, 5, 1, 1, 1, 1, 5, 1, 2, 1, 4, 1, 1, 3, 3, 1,
7, 4, 2, 4, 4, 4, 5, 5, 1, 1, 7, 2, 2, 3, 7, 3, 5, 6, 2,
7, 1, 1, 1, 1, 3, 4, 1, 2, 1, 1, 3, 1, 3, 1, 1, 1, 2, 4,
6, 3, 3, 1, 2, 4, 2, 2, 1, 3, 3, 1, 4, 1, 1, 1, 5, 3, 3,
5, 2, 5, 2, 1, 6, 3, 1, 5, 1, 1, 4, 2, 1, 3, 2, 1, 1, 4,
3, 1, 5, 5, 4, 6, 5, 1, 1, 1, 1, 2, 7, 1, 4, 6, 3, 1, 2,
7, 2, 1, 1, 1, 2, 4, 2, 4, 5, 2, 3, 1, 1, 2, 1, 3, 1, 3,
1, 2, 1, 4, 2, 1, 3, 1, 6, 1, 2, 4, 1, 1, 5, 5, 4, 5, 1,
1, 2, 3, 1, 1, 6, 2, 2, 3, 1, 4, 2, 4, 2, 4, 2, 4, 4, 1,
1, 3, 2, 5, 4, 2, 1, 7, 4, 7, 3, 1, 7, 2, 2, 1, 1, 3, 1,
7, 4, 1, 5, 1, 5, 3, 3, 5, 3, 5, 2, 1, 5, 1, 1, 1, 2, 1,
1, 2, 3, 1, 3, 1, 6, 1, 1, 5, 1, 1, 1, 1, 5, 4, 6, 3, 2,
1, 2, 6, 6, 3, 4, 4, 6, 2, 5, 2, 1, 5, 7, 4, 1, 4, 1, 2,
3, 4, 6, 4, 4, 1, 7, 2, 1, 6, 1, 4, 1, 1, 3, 5, 1, 4, 5,
1, 1, 4, 2, 2, 4, 1, 1, 2, 1, 3, 1, 2, 7, 1, 2, 5, 2, 6,
6, 2, 5, 1, 1, 5, 3, 5, 1, 1, 5, 1, 1, 6, 1, 4, 1, 4, 6,
6, 5, 3, 5, 2, 2, 5, 6), att_judge = c(3, 5, 4, 4, 4, 1,
5, 3, 3, 3, 5, 1, 4, 3, 5, 4, 4, 6, 4, 2, 4, 5, 2, 4, 2,
5, 2, 4, 3, 4, 5, 7, 3, 7, 6, 3, 1, 3, 1, 4, 3, 2, 1, 4,
1, 1, 3, 7, 4, 2, 1, 1, 7, 1, 1, 4, 2, 4, 2, 1, 2, 1, 4,
4, 6, 2, 2, 1, 1, 1, 5, 2, 4, 5, 4, 6, 6, 6, 1, 3, 3, 4,
4, 4, 2, 4, 1, 1, 3, 2, 1, 2, 4, 4, 1, 3, 3, 5, 3, 1, 1,
2, 5, 5, 5, 5, 4, 5, 4, 4, 4, 1, 1, 3, 5, 6, 1, 1, 1, 4,
2, 1, 1, 3, 4, 4, 2, 4, 2, 5, 5, 1, 2, 4, 6, 2, 3, 1, 3,
1, 4, 2, 2, 1, 4, 3, 7, 4, 2, 4, 1, 2, 1, 4, 5, 4, 3, 2,
2, 4, 4, 1, 4, 2, 3, 2, 5, 6, 3, 1, 4, 2, 1, 5, 7, 3, 2,
5, 2, 1, 3, 2, 3, 4, 2, 4, 1, 4, 4, 4, 3, 2, 4, 1, 4, 3,
1, 1, 6, 3, 4, 3, 4, 2, 5, 4, 4, 1, 4, 4, 2, 3, 5, 3, 1,
4, 1, 2, 2, 4, 1, 4, 4, 7, 1, 1, 2, 3, 5, 6, 2, 1, 3, 2,
3, 3, 4, 3, 1, 4, 1, 4, 4, 2, 2, 2, 3, 2, 1, 4, 1, 4, 4,
3, 2, 1, 1, 4, 4, 1, 2, 4, 5, 2, 2, 1, 3, 1, 4, 4, 1, 2,
3, 1, 1, 2, 3, 5, 4, 2, 4, 4, 4, 1, 1, 1, 1, 2, 5, 5, 4,
4, 4, 7, 5, 2, 2, 3, 4, 3, 4, 1, 4, 1, 7, 4, 4, 1, 2, 5,
5, 1, 3, 2, 4, 1, 1, 1, 5, 4, 2, 1, 1, 1, 1, 1, 4, 1, 3,
3, 1, 1, 1, 1, 4, 4, 4, 4, 5, 4, 7, 2, 6, 5, 3, 2, 1, 2,
2, 3, 5, 2, 3, 2, 2, 2, 3, 5, 1, 6, 3, 2, 1, 3, 3, 1, 4,
1, 1, 5, 4, 3, 5, 1, 1, 3, 2, 2, 4, 4, 3, 1, 5, 1, 2, 3,
2, 1, 3, 1, 3, 4, 5, 1, 4, 6, 3, 4, 1, 1, 4, 5, 3, 3, 2,
4, 2, 2, 3, 4, 3, 5, 4, 3, 1, 3, 2, 2, 4, 2, 1, 1, 1, 4,
5, 4, 2, 2, 1, 4, 3, 1, 4, 3, 2, 1, 3, 3, 1, 3, 4, 1, 3,
3, 3, 4, 4, 5, 3, 4, 1, 5, 7, 1, 4, 2, 3, 3, 3, 2, 3, 5,
4, 1, 3, 2, 4, 1, 4, 4, 2, 3, 4, 4, 1, 5, 3, 3, 3, 2, 1,
6, 4, 7, 1, 2, 5, 1, 6, 1, 5, 4, 5, 2, 4, 1, 1, 5, 3, 4,
3, 4, 4, 4, 3, 2, 2, 2, 1, 2, 3, 3, 2, 4, 1, 4, 1, 4, 3,
1, 2, 4, 3, 5, 5, 2, 1, 4, 6, 4, 4, 3, 4, 1, 7, 1, 4, 2,
3, 6, 5, 4, 3, 2, 3, 3, 1, 1, 2, 2, 5, 6, 1, 7, 5, 5, 4,
5, 5, 1, 5, 6, 3, 1, 1, 1, 4, 3, 2, 4, 3, 3, 1, 5, 1, 4,
4, 3, 4, 3, 3, 2, 3, 2, 4, 7, 4, 4, 2, 5, 3, 4, 5, 2, 3,
1, 1, 1, 4, 5, 1, 5, 1, 6, 5, 4, 4, 1, 2, 4, 4, 4, 4, 5,
4, 2, 6, 3, 4, 2, 4, 2, 7, 2, 1, 4, 1, 6, 4, 3, 4, 4, 2,
1, 7, 5, 3, 5, 1, 1, 3, 3, 3, 4, 2, 1, 3, 1, 4, 4, 4, 4,
4, 3, 4, 3, 2, 5, 4, 5, 1, 1, 4, 4, 3, 1, 7, 4, 3, 1, 7,
6, 4, 5, 1, 4, 5, 7, 2, 4, 4, 5, 1, 5, 5, 7, 4, 4, 4, 5,
1, 1, 5), att_respectvalues = c(5, 4, 4, 3, 4, 5, 4, 5, 7,
4, 5, 7, 4, 4, 5, 4, 5, 6, 4, 5, 3, 4, 5, 4, 6, 4, 5, 4,
3, 4, 4, 3, 5, 4, 1, 5, 2, 4, 2, 5, 5, 2, 7, 5, 7, 5, 4,
7, 2, 3, 4, 6, 7, 6, 4, 4, 6, 5, 4, 7, 6, 6, 5, 3, 2, 5,
5, 5, 6, 4, 5, 4, 5, 6, 4, 4, 5, 4, 7, 6, 6, 4, 4, 5, 7,
5, 4, 2, 4, 7, 4, 6, 7, 4, 5, 3, 4, 5, 3, 6, 6, 4, 3, 5,
2, 5, 7, 6, 3, 7, 6, 4, 1, 4, 4, 3, 4, 4, 7, 5, 4, 6, 4,
4, 6, 4, 6, 2, 4, 5, 6, 4, 4, 5, 3, 6, 6, 6, 4, 6, 6, 5,
5, 4, 3, 5, 4, 4, 7, 4, 4, 5, 4, 3, 6, 4, 5, 6, 3, 4, 4,
5, 4, 5, 5, 4, 5, 1, 3, 2, 5, 5, 7, 3, 5, 7, 5, 4, 2, 4,
5, 3, 5, 4, 5, 4, 4, 4, 7, 4, 6, 4, 7, 4, 5, 6, 4, 7, 3,
3, 3, 6, 7, 5, 4, 7, 2, 7, 1, 4, 3, 6, 4, 4, 7, 7, 3, 6,
3, 6, 4, 5, 3, 3, 7, 3, 7, 4, 6, 3, 4, 6, 4, 4, 5, 5, 5,
6, 6, 5, 4, 4, 7, 4, 3, 4, 6, 6, 6, 5, 7, 4, 5, 5, 3, 4,
1, 4, 4, 3, 5, 4, 4, 6, 5, 4, 4, 4, 4, 4, 7, 5, 4, 7, 5,
4, 3, 4, 4, 5, 5, 7, 4, 7, 4, 4, 7, 5, 6, 3, 5, 5, 7, 7,
4, 4, 4, 6, 5, 3, 4, 3, 4, 6, 4, 4, 4, 6, 6, 5, 4, 7, 5,
6, 4, 4, 4, 6, 6, 3, 5, 5, 7, 1, 6, 6, 3, 4, 4, 4, 4, 7,
4, 4, 4, 5, 5, 5, 4, 4, 2, 4, 7, 5, 5, 6, 1, 6, 6, 7, 4,
7, 3, 5, 4, 3, 6, 4, 6, 6, 6, 6, 5, 3, 7, 4, 4, 5, 4, 5,
7, 5, 3, 7, 4, 5, 4, 6, 7, 7, 3, 4, 5, 6, 6, 3, 7, 7, 5,
7, 4, 7, 4, 4, 4, 4, 6, 4, 3, 4, 4, 5, 3, 5, 6, 4, 4, 4,
4, 4, 5, 5, 6, 5, 5, 4, 5, 5, 3, 4, 7, 7, 4, 6, 7, 4, 4,
4, 7, 3, 4, 4, 4, 4, 5, 7, 4, 4, 3, 6, 4, 6, 4, 5, 5, 4,
4, 6, 5, 7, 3, 6, 7, 4, 4, 4, 4, 2, 5, 4, 5, 4, 5, 5, 7,
5, 5, 4, 4, 5, 5, 5, 5, 7, 7, 4, 4, 6, 2, 3, 4, 6, 4, 4,
5, 6, 4, 6, 4, 6, 5, 2, 4, 6, 3, 1, 5, 6, 6, 7, 3, 5, 6,
5, 6, 5, 4, 5, 7, 4, 6, 5, 5, 5, 7, 3, 7, 4, 3, 2, 5, 4,
4, 4, 5, 1, 6, 7, 4, 5, 6, 2, 7, 7, 4, 3, 4, 5, 4, 2, 4,
5, 7, 5, 5, 5, 5, 4, 1, 3, 4, 7, 4, 4, 4, 4, 3, 7, 4, 4,
5, 1, 5, 7, 4, 6, 6, 4, 6, 4, 5, 4, 1, 7, 4, 7, 4, 4, 4,
4, 6, 2, 5, 5, 4, 7, 6, 4, 4, 5, 7, 4, 5, 5, 5, 7, 2, 4,
3, 3, 4, 5, 7, 6, 3, 4, 3, 1, 5, 4, 5, 3, 4, 5, 4, 4, 5,
5, 4, 5, 6, 6, 2, 5, 6, 4, 6, 2, 7, 4, 4, 4, 4, 6, 1, 5,
4, 7, 4, 5, 4, 7, 5, 4, 6, 5, 3, 4, 7, 3, 4, 5, 5, 6, 6,
5, 5, 3, 4, 4, 4, 2, 3, 4, 5, 4, 7, 5, 3, 5, 7, 6, 4, 7,
7, 7, 4, 7, 4, 4, 7, 5, 5, 6, 2, 6, 5, 4, 2, 4, 5, 4, 5)), row.names = c(NA,
-693L), class = c("tbl_df", "tbl", "data.frame"))
Store the results in an object. Then exclude empty strings (where do they actually come from?) convert toString and cat it.
res <- lapply(mediators, med_overall)
cat(toString(res[res != '']))
# att_admire, att_hypocrisy, att_annoyed, att_respectvalues

Output list of variables with significant p-values from several regressions in R

I have a dataframe that looks like the following.
consistent admire trust judge
3 3 2 4
5 1 3 6
2 4 5 1
I can run the regressions I need simultaneously using the following code. In the actual dataset, there are many more than 3 variables.
variables <- c("admire", "trust", "judge")
form <- paste("consistent ~ ",variables,"")
model <- form %>%
set_names(variables) %>%
map(~lm(as.formula(.x), data = df))
map(model, summary)
This yields the output for the 3 following regressions.
summary(lm(consistent ~ admire, df))
summary(lm(consistent ~ trust, df))
summary(lm(consistent ~ judge, df))
I would like a list of the variables with significant p-values at p < 0.05. For example, if "admire" was significant and "judge" was significant, the output I am looking for would be something like:
admire, judge
Is there a way to do this that allows me to also run several regressions simultaneously? This question offers a similar answer, but I don't know how to apply it when I have several regressions.
Data:
structure(list(consistent = c(1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0,
1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1,
0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1,
1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1,
1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0,
1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1,
1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1,
0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1,
1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0,
1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0,
1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0,
0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1,
1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0,
0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0,
0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1,
1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0,
1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0,
1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1,
0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1,
1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0), admire = c(7,
3, 1, 1, 3, 5, 5, 6, 7, 1, 4, 2, 5, 3, 3, 1, 3, 1, 2, 1, 5, 5,
3, 1, 5, 3, 5, 4, 5, 1, 6, 1, 6, 2, 1, 4, 1, 1, 3, 2, 1, 5, 1,
7, 1, 4, 1, 4, 2, 2, 4, 2, 4, 1, 5, 5, 1, 2, 6, 6, 1, 1, 3, 5,
5, 1, 5, 7, 2, 4, 5, 1, 4, 4, 3, 5, 6, 1, 5, 2, 1, 5, 6, 2, 3,
3, 5, 6, 1, 4, 4, 6, 4, 4, 4, 6, 5, 4, 1, 2, 5, 4, 2, 4, 6, 1,
3, 7, 4, 4, 3, 2, 7, 5, 3, 2, 1, 2, 2, 5, 7, 3, 5, 4, 6, 2, 2,
4, 4, 5, 5, 1, 5, 6, 1, 2, 4, 7, 1, 4, 5, 4, 2, 4, 1, 4, 3, 4,
7, 5, 6, 3, 1, 1, 7, 1, 6, 4, 1, 1, 2, 1, 1, 6, 3, 1, 4, 4, 7,
2, 1, 5, 3, 3, 7, 4, 5, 1, 3, 7, 5, 4, 1, 1, 1, 5, 2, 1, 1, 4,
1, 5, 4, 5, 1, 4, 4, 4, 7, 1, 1, 2, 5, 2, 4, 2, 4, 6, 4, 2, 6,
5, 6, 7, 4, 4, 5, 1, 5, 7, 1, 7, 2, 7, 3, 6, 2, 5, 7, 3, 5, 4,
1, 4, 1, 5, 1, 1, 6, 6, 7, 3, 4, 1, 6, 4, 1, 6, 7, 5, 4, 2, 6,
5, 5, 4, 1, 2, 6, 1, 5, 3, 1, 1, 1, 7, 7, 3, 5, 1, 5, 1, 7, 2,
5, 4, 2, 1, 4, 1, 1, 5, 5, 4, 5, 2, 4, 5, 5, 1, 4, 4, 1, 3, 4,
2, 7, 6, 6, 4, 3, 6, 1, 6, 1, 1, 4, 7, 7, 1, 3, 1, 4, 2, 2, 6,
1, 2, 1, 1, 1, 4, 2, 5, 4, 1, 4, 2, 5, 5, 2, 1, 6, 1, 2, 3, 4,
1, 7, 2, 2, 4, 5, 1, 6, 2, 5, 1, 5, 6, 2, 5, 1, 1, 7, 4, 5, 6,
1, 4, 5, 2, 4, 4, 6, 4, 4, 2, 6, 1, 1, 2, 6, 1, 3, 5, 5, 3, 7,
5, 6, 4, 3, 4, 7, 5, 4, 2, 1, 5, 7, 2, 6, 3, 1, 2, 4, 3, 5, 4,
1, 6, 1, 3, 1, 1, 1, 4, 3, 3, 1, 1, 1, 6, 4, 1, 1, 1, 1, 4, 1,
6, 4, 4, 4, 4, 1, 5, 2, 4, 5, 4, 4, 3, 3, 6, 7, 3, 2, 4, 2, 5,
1, 4, 5, 4, 1, 2, 4, 1), trust = c(7, 4, 2, 2, 3, 4, 6, 6, 7,
1, 4, 5, 5, 4, 1, 1, 2, 2, 1, 1, 6, 6, 4, 1, 3, 6, 5, 4, 6, 1,
5, 1, 6, 1, 2, 5, 1, 1, 4, 1, 1, 5, 1, 7, 1, 4, 4, 5, 3, 4, 5,
3, 5, 2, 6, 5, 3, 2, 6, 6, 1, 1, 3, 5, 5, 1, 5, 7, 2, 4, 6, 1,
4, 4, 4, 6, 6, 3, 5, 6, 1, 6, 5, 2, 2, 2, 5, 7, 1, 5, 3, 7, 3,
5, 4, 6, 6, 5, 2, 1, 6, 5, 2, 6, 5, 1, 2, 7, 6, 5, 3, 3, 4, 7,
4, 2, 1, 3, 4, 7, 6, 2, 6, 5, 7, 3, 2, 4, 5, 5, 5, 1, 2, 7, 1,
1, 5, 4, 1, 4, 6, 6, 2, 4, 2, 4, 1, 5, 7, 6, 7, 3, 2, 1, 7, 1,
4, 4, 1, 2, 4, 1, 1, 6, 3, 1, 4, 3, 7, 2, 2, 6, 4, 5, 7, 5, 7,
2, 4, 7, 4, 3, 1, 1, 1, 5, 2, 4, 1, 4, 1, 5, 4, 5, 1, 6, 5, 4,
6, 1, 1, 2, 6, 2, 4, 4, 4, 5, 6, 1, 5, 5, 5, 6, 4, 4, 5, 5, 6,
7, 1, 7, 3, 7, 5, 6, 3, 5, 7, 4, 5, 4, 2, 3, 1, 4, 5, 1, 5, 4,
7, 3, 5, 1, 6, 6, 1, 4, 6, 5, 4, 3, 7, 6, 5, 4, 1, 1, 6, 1, 5,
3, 1, 1, 1, 7, 7, 3, 4, 1, 4, 1, 7, 2, 4, 2, 2, 2, 4, 1, 1, 5,
4, 6, 5, 2, 4, 5, 4, 1, 6, 4, 1, 4, 4, 3, 7, 5, 6, 4, 4, 6, 2,
6, 1, 2, 4, 7, 7, 1, 1, 1, 4, 2, 2, 6, 2, 4, 1, 2, 1, 6, 2, 6,
4, 1, 6, 3, 5, 4, 3, 1, 6, 1, 2, 3, 5, 1, 6, 1, 3, 4, 5, 2, 6,
2, 5, 1, 3, 7, 1, 4, 1, 1, 7, 5, 6, 5, 1, 5, 5, 1, 4, 3, 7, 4,
4, 1, 7, 1, 1, 4, 6, 1, 4, 5, 5, 4, 7, 6, 7, 4, 4, 4, 4, 4, 4,
1, 1, 5, 6, 2, 7, 4, 2, 4, 5, 4, 5, 4, 1, 5, 1, 2, 1, 1, 4, 4,
3, 4, 3, 1, 2, 6, 5, 1, 1, 1, 2, 4, 1, 7, 4, 4, 5, 6, 2, 5, 3,
4, 5, 4, 4, 3, 3, 6, 7, 4, 4, 3, 2, 5, 1, 5, 5, 5, 2, 2, 3, 1
), judge = c(1, 5, 6, 3, 6, 3, 4, 5, 4, 1, 3, 2, 3, 2, 4, 3,
4, 2, 5, 4, 3, 3, 4, 4, 7, 5, 4, 4, 1, 3, 6, 2, 3, 2, 5, 2, 3,
4, 2, 4, 4, 3, 4, 4, 1, 4, 1, 2, 3, 1, 2, 2, 3, 5, 3, 5, 5, 3,
1, 4, 4, 2, 5, 4, 3, 1, 5, 4, 4, 5, 2, 2, 2, 7, 3, 3, 1, 1, 5,
3, 3, 1, 2, 5, 2, 3, 5, 4, 3, 4, 3, 2, 1, 3, 4, 4, 5, 5, 3, 2,
2, 3, 2, 4, 1, 1, 4, 2, 2, 3, 3, 2, 4, 4, 6, 1, 7, 4, 2, 3, 4,
1, 2, 4, 4, 5, 2, 1, 3, 2, 2, 1, 1, 7, 2, 3, 5, 5, 1, 2, 2, 5,
6, 5, 1, 1, 1, 4, 1, 5, 4, 3, 6, 1, 4, 1, 3, 4, 6, 1, 2, 4, 3,
3, 4, 7, 1, 3, 1, 2, 2, 3, 2, 3, 5, 3, 4, 2, 6, 3, 1, 1, 1, 1,
4, 2, 2, 4, 4, 5, 4, 2, 1, 6, 7, 5, 2, 2, 4, 5, 6, 1, 5, 2, 4,
5, 5, 2, 2, 3, 4, 5, 2, 2, 4, 1, 3, 4, 4, 4, 2, 3, 1, 4, 4, 3,
2, 3, 1, 4, 2, 4, 4, 1, 5, 4, 4, 4, 4, 6, 1, 3, 5, 7, 2, 6, 1,
5, 7, 5, 4, 2, 3, 6, 3, 1, 1, 2, 2, 5, 5, 2, 5, 4, 4, 5, 4, 4,
3, 7, 4, 4, 4, 2, 5, 3, 6, 5, 4, 4, 4, 6, 4, 5, 5, 1, 5, 2, 6,
4, 4, 1, 1, 4, 6, 1, 7, 1, 5, 2, 5, 4, 2, 3, 2, 6, 3, 2, 2, 1,
1, 5, 4, 1, 1, 4, 1, 5, 1, 4, 3, 2, 3, 4, 1, 6, 1, 2, 1, 3, 5,
5, 2, 1, 3, 4, 2, 4, 5, 4, 6, 3, 4, 6, 7, 6, 2, 4, 6, 2, 4, 5,
1, 4, 1, 3, 2, 4, 1, 6, 4, 3, 1, 3, 4, 5, 1, 6, 1, 5, 1, 3, 3,
1, 3, 4, 2, 4, 1, 1, 2, 2, 2, 3, 1, 6, 5, 4, 1, 7, 5, 6, 5, 2,
3, 5, 4, 3, 4, 5, 7, 1, 5, 2, 5, 1, 3, 4, 3, 5, 1, 4, 2, 3, 4,
1, 7, 5, 5, 2, 1, 2, 5, 6, 5, 5, 3, 1, 3, 1, 4, 1, 5, 2, 3, 5,
6, 4, 4, 3, 2, 4, 1, 3, 4, 3, 4, 4, 1, 5)), row.names = c(NA,
-450L), class = c("tbl_df", "tbl", "data.frame"))
To fit many many simple linear regression models, I recommend Fast pairwise simple linear regression between variables in a data frame. Hmm... looks like I need to collect those functions in an R package...
## suppose your data frame is `df`
## response variable (LHS) in column 1
## independent variable (RHS) in other columns
out <- general_paired_simpleLM(df[1], df[-1])
# LHS RHS alpha beta beta.se beta.tv beta.pv
#1 consistent admire -0.1458455 0.18754326 0.008324192 22.529906 1.040756e-75
#2 consistent trust -0.2211250 0.19565589 0.007721387 25.339475 1.531499e-88
#3 consistent judge 0.3484851 0.04824981 0.014182420 3.402086 7.287372e-04
# sig R2 F.fv F.pv
#1 0.3430602 0.53118295 507.59665 1.040756e-75
#2 0.3212008 0.58902439 642.08902 1.531499e-88
#3 0.4946862 0.02518459 11.57419 7.287372e-04
To get what you want:
with(out, RHS[beta.pv < 0.05])
#[1] "admire" "trust" "judge"

What is the other way to qount tertiles using tidyverse (or any other packages) in R?

I have WVS 6th wave dataframe. Computed the outgroup trust index (outgroup_index) and I want to divide this vector into 3 groups according to tertiles.
I use base R functions to do that:
# Recoding will be based on tertiles
# Find the tretiles of the index
tertiles <- quantile(filtered_df$outgroup_index, c(0:3) / 3)
# cut the target variable into tertiles
filtered_df$index_recoded <- with(
filtered_df,
cut(outgroup_index,
tertiles,
include.lowest = T)
)
But I am wondering about other possible and more neat ways to do it (preferably using dplyr/tidyverse or any other packages)?
Data:
structure(list(V2 = structure(c(643, 643, 643, 643, 643, 643,
643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643,
643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643,
643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643,
643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643,
643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643,
643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643,
643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643, 643,
643, 643, 643, 643), label = "Country/region", format.spss = "F4.0", labels = c(`Not asked in survey` = -4,
Algeria = 12, Azerbaijan = 31, Argentina = 32, Australia = 36,
Armenia = 51, Brazil = 76, Belarus = 112, Chile = 152, China = 156,
`Taiwan ROC` = 158, Colombia = 170, Cyprus = 196, Ecuador = 218,
Estonia = 233, Georgia = 268, Palestine = 275, Germany = 276,
Ghana = 288, Haiti = 332, `Hong Kong SAR` = 344, India = 356,
Iraq = 368, Japan = 392, Kazakhstan = 398, Jordan = 400, `South Korea` = 410,
Kuwait = 414, Kyrgyzstan = 417, Lebanon = 422, Libya = 434, Malaysia = 458,
Mexico = 484, Morocco = 504, Netherlands = 528, `New Zealand` = 554,
Nigeria = 566, Pakistan = 586, Peru = 604, Philippines = 608,
Poland = 616, Qatar = 634, Romania = 642, Russia = 643, Rwanda = 646,
Singapore = 702, Slovenia = 705, `South Africa` = 710, Zimbabwe = 716,
Spain = 724, Sweden = 752, Thailand = 764, `Trinidad and Tobago` = 780,
Tunisia = 788, Turkey = 792, Ukraine = 804, Egypt = 818, `United States` = 840,
Uruguay = 858, Uzbekistan = 860, Yemen = 887), class = c("haven_labelled",
"vctrs_vctr", "double")), V105 = structure(c(4, 3, 3, 4, 3, 4,
4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 2, 2, 2, 1, 1,
2, 4, 2, 2, 2, 1, 2, 1, 4, 2, 1, 4, 2, 3, 3, 2, 3, 2, 3, 2, 3,
2, 2, 3, 3, 3, 3, 3, 3, NA, 3, 3, 4, 2, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 2, 2, 3, 3, 3, 2, 3, NA), label = "Trust: People you meet for the first time (B)", format.spss = "F3.0", labels = c(`SE:Inapplicable ; RU:Inappropriate response; HT: Dropped out` = -5,
`Not asked` = -4, `Not applicable` = -3, `No answer` = -2, `Don<U+00B4>t know` = -1,
`Trust completely` = 1, `Trust somewhat` = 2, `Do not trust very much` = 3,
`Do not trust at all` = 4), class = c("haven_labelled", "vctrs_vctr",
"double")), V106 = structure(c(3, 2, NA, 4, 2, 4, 4, 3, 3, 4,
3, 3, 4, 4, 4, 4, NA, NA, NA, NA, 3, 2, 2, 2, 2, 2, 2, 3, 3,
3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 2, 2, 1, 1, 2, 2,
2, 2, 1, 1, 2, 1, 4, 2, 1, 4, 2, 3, 3, 2, 2, 2, 3, 2, 3, 2, 2,
NA, 3, NA, 3, 3, 3, 2, 3, 3, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 2, 2, 3, 2, 2, 2, 3), label = "Trust: People of another religion (B)", format.spss = "F3.0", labels = c(`DE,SE:Inapplicable ; RU:Inappropriate response; HT: Dropped` = -5,
`Not asked` = -4, `Not applicable` = -3, `No answer` = -2, `Don<U+00B4>t know` = -1,
`Trust completely` = 1, `Trust somewhat` = 2, `Do not trust very much` = 3,
`Do not trust at all` = 4), class = c("haven_labelled", "vctrs_vctr",
"double")), V107 = structure(c(3, 4, NA, 4, 2, 4, 4, 3, 3, 4,
3, 3, 4, 4, 4, 4, 3, 2, NA, NA, 3, 2, 2, 2, 2, 2, 2, 3, 3, 3,
3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2,
2, 1, 1, 2, 1, 4, 2, 1, 3, 2, 3, 2, 2, 2, 2, 3, 2, 3, 2, 2, NA,
3, 2, 3, 3, 3, 2, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 3, 2, 3, 2, 2, 2, 3), label = "Trust: People of another nationality (B)", format.spss = "F3.0", labels = c(`DE,SE:Inapplicable ; RU:Inappropriate response; HT: Dropped` = -5,
`Not asked` = -4, `Not applicable` = -3, `No answer` = -2, `Don<U+00B4>t know` = -1,
`Trust completely` = 1, `Trust somewhat` = 2, `Do not trust very much` = 3,
`Do not trust at all` = 4), class = c("haven_labelled", "vctrs_vctr",
"double")), V248 = structure(c(9, 8, 5, 8, 8, 8, 8, 9, 7, 9,
9, 5, 5, 6, 5, 5, 5, 5, 5, 4, 9, 9, 4, 9, 9, 3, 6, 9, 8, 9, 9,
9, NA, 9, 5, 9, 5, 7, 9, 5, 5, 9, 9, 8, 9, 9, 5, 5, 5, 9, 9,
8, 5, 8, 9, 9, 5, 8, 9, 9, 9, 7, 7, 5, 4, 6, 9, 6, 6, 9, 9, 5,
6, 7, 5, 4, 7, 7, 5, 5, 5, 5, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 5,
9, 9, 5, 9, 8, 9, 5, 5), label = "Highest educational level attained", format.spss = "F3.0", labels = c(`AU: Inapplicable (No-school education) DE,SE:Inapplicable ;` = -5,
`Not asked` = -4, `Not applicable` = -3, `No answer` = -2, `Don<U+00B4>t know` = -1,
`No formal education` = 1, `Incomplete primary school` = 2, `Complete primary school` = 3,
`Incomplete secondary school: technical/ vocational type` = 4,
`Complete secondary school: technical/ vocational type` = 5,
`Incomplete secondary school: university-preparatory type` = 6,
`Complete secondary school: university-preparatory type` = 7,
`Some university-level education, without degree` = 8, `University - level education, with degree` = 9
), class = c("haven_labelled", "vctrs_vctr", "double")), V59 = structure(c(9,
5, 6, 8, 6, 7, NA, 8, 5, 3, 4, 7, 2, 1, 1, 6, 8, 6, NA, NA, 1,
5, NA, 6, 1, 2, 9, 5, 6, NA, NA, 3, 6, 6, 4, NA, 6, 6, NA, NA,
3, 9, 8, 10, 9, 6, 10, 9, 8, 9, 9, 10, 6, 4, 4, 6, 4, 10, 3,
3, 4, 3, 5, 4, 7, 3, 3, 4, 3, 7, 4, 6, 4, 1, 1, 6, 1, 1, 6, 1,
1, 4, 4, 3, 4, 4, 4, 3, 4, 4, 4, 2, 7, 3, 1, 5, 6, 7, 2, 4, 5
), label = "Satisfaction with financial situation of household", format.spss = "F3.0", labels = c(`HT: Dropped out survey;DE,SE:Inapplicable ; RU:Inappropriate` = -5,
`Not asked` = -4, `No answer` = -2, `Don<U+00B4>t know` = -1,
Dissatisfied = 1, `2` = 2, `3` = 3, `4` = 4, `5` = 5, `6` = 6,
`7` = 7, `8` = 8, `9` = 9, Satisfied = 10), class = c("haven_labelled",
"vctrs_vctr", "double")), V237 = structure(c(3, 2, 2, 2, NA,
1, 2, 2, 1, 2, 2, 2, 2, 3, 2, 1, 1, 3, 2, 2, NA, 2, 2, 3, 4,
2, 2, 1, NA, 1, 1, 1, NA, NA, NA, 1, NA, 1, 1, NA, 2, 1, 2, 1,
1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3,
2, 3, 2, 1, 2, 3, 2, 2, 2, NA, 2, 2, 4, 2, 2, 2, 1, 1, 2, 1,
2, 3, 2, 2, 1, 2, 2, 2, 3, 3, 2, 3, 2, 2, NA, 3), label = "Family savings during past year", format.spss = "F3.0", labels = c(`DE,SE:Inapplicable ; RU:Inappropriate response; BH: Missing;` = -5,
`Not asked` = -4, `Not applicable` = -3, `No answer` = -2, `Don<U+00B4>t know` = -1,
`Save money` = 1, `Just get by` = 2, `Spent some savings and borrowed money` = 3,
`Spent savings and borrowed money` = 4), class = c("haven_labelled",
"vctrs_vctr", "double")), V105_rec = c(1, 2, 2, 1, 2, 1, 1, 1,
1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 3, 3, 3, 4, 4, 3, 1,
3, 3, 3, 4, 3, 4, 1, 3, 4, 1, 3, 2, 2, 3, 2, 3, 2, 3, 2, 3, 3,
2, 2, 2, 2, 2, 2, NA, 2, 2, 1, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 3, 3, 2, 2, 2, 3, 2, NA), V106_rec = c(2, 3, NA, 1, 3,
1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, NA, NA, NA, NA, 2, 3, 3, 3,
3, 3, 3, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 3,
3, 4, 4, 3, 3, 3, 3, 4, 4, 3, 4, 1, 3, 4, 1, 3, 2, 2, 3, 3, 3,
2, 3, 2, 3, 3, NA, 2, NA, 2, 2, 2, 3, 2, 2, 1, 3, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 2, 3, 3, 3, 2), V107_rec = c(2,
1, NA, 1, 3, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 3, NA, NA, 2,
3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4,
3, 3, 3, 3, 4, 4, 3, 4, 3, 3, 4, 4, 3, 4, 1, 3, 4, 2, 3, 2, 3,
3, 3, 3, 2, 3, 2, 3, 3, NA, 2, 3, 2, 2, 2, 3, 2, 2, 2, 3, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 3, 2, 3, 3, 3, 2), outgroup_index = c(1.66666666666667,
2, 2, 1, 2.66666666666667, 1, 1, 1.66666666666667, 1.66666666666667,
1, 1.66666666666667, 2, 1, 1, 1, 1, 1.5, 2.5, 2, 2, 2, 3, 3,
3, 3, 3, 2.66666666666667, 2, 2, 2, 2, 1.33333333333333, 1.33333333333333,
2, 2, 2, 2, 2, 2, 2, 2, 2.66666666666667, 2, 3, 3, 3, 4, 4, 3,
2.66666666666667, 3, 3, 3.66666666666667, 4, 3, 4, 1, 3, 4, 1.33333333333333,
3, 2, 2.33333333333333, 3, 2.66666666666667, 3, 2, 3, 2, 3, 3,
2, 2, 2.5, 2, 2, 2, 3, 2, 2, 1.33333333333333, 3, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 3, 2.66666666666667, 2.66666666666667, 2,
2.66666666666667, 3, 2.66666666666667, 2), V59_rec = structure(c(5,
3, 3, 4, 3, 4, NA, 4, 3, 2, 2, 4, 1, 1, 1, 3, 4, 3, NA, NA, 1,
3, NA, 3, 1, 1, 5, 3, 3, NA, NA, 2, 3, 3, 2, NA, 3, 3, NA, NA,
2, 5, 4, 5, 5, 3, 5, 5, 4, 5, 5, 5, 3, 2, 2, 3, 2, 5, 2, 2, 2,
2, 3, 2, 4, 2, 2, 2, 2, 4, 2, 3, 2, 1, 1, 3, 1, 1, 3, 1, 1, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 4, 2, 1, 3, 3, 4, 1, 2, 3), labels = c(`Not satisfied at all` = 1,
`Rather not satisfied` = 2, `Neither satisfied, nor not satisfied` = 3,
`Rather satisfied` = 4, Satisfied = 5), class = c("haven_labelled",
"vctrs_vctr", "double")), V248_dummy = structure(c(1, 1, 0, 1,
1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1,
0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1,
0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1,
0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0), labels = c(`A university education and higher` = 1,
`No university education` = 0), class = c("haven_labelled", "vctrs_vctr",
"double")), V237_rec = structure(c(3, 2, 2, 2, NA, 1, 2, 2, 1,
2, 2, 2, 2, 3, 2, 1, 1, 3, 2, 2, NA, 2, 2, 3, 3, 2, 2, 1, NA,
1, 1, 1, NA, NA, NA, 1, NA, 1, 1, NA, 2, 1, 2, 1, 1, 1, 1, 1,
1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 2, 3, 2, 1,
2, 3, 2, 2, 2, NA, 2, 2, 3, 2, 2, 2, 1, 1, 2, 1, 2, 3, 2, 2,
1, 2, 2, 2, 3, 3, 2, 3, 2, 2, NA, 3), labels = c(`Save money` = 1,
`Just get by` = 2, `Spent savings and borrowed money` = 3), class = c("haven_labelled",
"vctrs_vctr", "double"))), row.names = c(NA, -101L), class = c("tbl_df",
"tbl", "data.frame"), label = "filelabel")
A bit unintuitive, but ggplot2 has the functionality you are looking for.
filtered_df %>%
mutate(index_recoded = ggplot2::cut_interval(outgroup_index, 3))
And to verify the levels are the same:
# smaller dput would be nice
start <- Data
all(
{
filtered_df <- start
tertiles <- quantile(filtered_df$outgroup_index, c(0:3) / 3)
filtered_df$index_recoded <- with(
filtered_df,
cut(outgroup_index,
tertiles,
include.lowest = T)
)
filtered_df$index_recoded
} == {
tv_df <- start
tv_df %>%
mutate(index_recoded = ggplot2::cut_interval(outgroup_index, 3)) %>%
pull(index_recoded)
}
)
[1] TRUE
cut has a simpler syntax if you want to divide the data into fixed intervals.
filtered_df$index_recoded <- cut(filtered_df$outgroup_index, 3)
You can also use it with labels = FALSE to get 1, 2 and 3 as output.
filtered_df$index_recoded <- cut(filtered_df$outgroup_index, 3, labels = FALSE)

Bootstrapping multiple regression error: number of items to replace is not a multiple of replacement length

I want to bootstrap my dataset for multiple regression. Unfortunately I get this error message:
"number of items to replace is not a multiple of replacement length"
I suspect that the factors in my regression formula may be problematic.
What could I do to solve my problem?
My code is as following (I read Andy FieldĀ“s Discovering Statistics using R):
BootReg <- function(data, indices, formula) {
d <- data[indices,]
fit <- lm(formula, data=d)
return(coef(fit))
}
bootResults <-boot(statistic = BootReg, formula = TICS_Skala1 ~HSPhoch + HSPhoch*extra.c
+ psy + sex + age.c, data = mod.reg.data, R = 2000)
psy (psychiatric disease), sex and HSPhoch (high sensory-processing sensitivity) are factors. TICS_Skala1, extra.c, age.c are continuos variables.
my sample data:
> dput(head(mod.reg.data, 20))
structure(list(neo_01 = c(3, 4, 3, 0, 4, 4, 3, 2, 3, 1, 4, 2,
3, 3, 1, 2, 3, 4, 0, 2), neo_03 = c(1, 1, 1, 3, 1, 2, 0, 0, 0,
0, 0, 0, 1, 3, 1, 1, 1, 1, 3, 1), neo_04 = c(2, 4, 3, 0, 4, 3,
4, 3, 2, 3, 3, 3, 3, 4, 2, 4, 3, 4, 3, 3), neo_08 = c(3, 0, 1,
2, 3, 3, 4, 3, 2, 1, 2, 4, 0, 3, 1, 1, 3, 1, 3, 1), neo_12 = c(3,
1, 1, 2, 2, 2, 4, 1, 1, 2, 1, 4, 1, 3, 1, 1, 3, 2, 3, 2), neo_13 = c(3,
2, 2, 4, 3, 3, 3, 2, 2, 1, 2, 3, 0, 3, 1, 0, 2, 3, 0, 2), neo_16 = c(3,
1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 3, 0, 2, 0, 0, 0, 0, 2, 1), neo_17 = c(2,
1, 3, 0, 1, 1, 1, 4, 3, 1, 2, 2, 2, 3, 1, 0, 2, 0, 2, 2), neo_18 = c(2,
3, 4, 0, 4, 3, 4, 3, 3, 1, 3, 2, 4, 2, 3, 4, 3, 4, 2, 2), neo_21 = c(3,
0, 1, 2, 1, 2, 1, 1, 1, 1, 1, 3, 0, 4, 1, 0, 0, 0, 4, 1), neo_26 = c(3,
0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 2, 3, 3, 0, 0, 1, 1, 4, 1), neo_27 = c(3,
3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 4, 3, 3, 3, 3, 2, 2), TICS_1 = c(3,
0, 3, 2, 2, 1, 3, 3, 1, 2, 0, 4, 2, 3, 2, 3, 4, 1, 3, 2), TICS_2 = c(3,
1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 4, 3, 1, 1, 1, 2, 1, 2, 1), TICS_3 = c(2,
1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 3, 1, 2, 0, 1, 1, 0, 1, 0), TICS_4 = c(2,
0, 2, 0, 1, 2, 1, 3, 0, 0, 0, 4, 1, 2, 1, 2, 1, 1, 2, 2), TICS_5 = c(2,
3, 2, 1, 2, 2, 2, 2, 0, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1), TICS_6 = c(3,
2, 2, 4, 2, 2, 1, 3, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2), TICS_7 = c(3,
3, 2, 2, 2, 2, 0, 3, 1, 2, 1, 4, 2, 0, 2, 1, 4, 1, 0, 1), TICS_8 =c(NA,
NA, NA, NA, NA, NA, NA, NA, 1, 1, 0, 4, 3, 1, 1, 3, 3, 2, 1,
2), TICS_9 = c(NA, NA, NA, NA, NA, NA, NA, NA, 0, 3, 2, 2, 1,
3, 0, 1, 3, 1, 1, 2), TICS_10 = c(2, 2, 0, 0, 2, 3, 0, 2, 1,
1, 2, 2, 1, 0, 0, 1, 1, 2, 2, 1), TICS_11 = c(1, 2, 1, 0, 1,
1, 0, 0, 0, 0, 2, 4, 1, 0, 0, 0, 0, 1, 1, 0), TICS_12 = c(2,
2, 1, 0, 1, 1, 1, 3, 1, 1, 1, 4, 2, 2, 2, 3, 3, 1, 2, 3), TICS_13=
c(1, 1, 3, 0, 2, 3, 2, 1, 1, 2, 1, 2, 2, 3, 2, 2, 1, 2, 2, 2),
TICS_14= c(4, 1, 1, 0, 1, 1, 3, 4, 0, 2, 0, 4, 2, 3, 0, 1, 3, 1, 1,
1), TICS_15= c(3, 1, 1, 3, 0, 2, 0, 2, 0, 2, 1, 2, 0, 1, 1, 1, 0, 0,
0, 1), ICS_16= c(4, 2, 1, 3, 3, 2, 1, 2, 1, 1, 1, 3, 1, 3, 1, 2, 3,
1, 2, 1), TICS_17= c(3, 0, 2, 2, 1, 2, 2, 3, 0, 1, 1, 2, 1, 2, 2, 3,
1, 1, 1, 2), TICS_18= c(3, 0, 1, 2, 0, 1, 1, 0, 0, 1, 0, 4, 2, 2, 0,
0, 1, 0, 2, 0), TICS_19= c(4, 2, 2, 2, 2, 2, 0, 2, 1, 2, 1, 4, 3, 2,
1, 1, 1, 0, 1, 2), TICS_20= c(2, 0, 2, 0, 0, 0, 1, 0, 1, 1, 0, 4, 1,
1, 0, 0, 1, 0, 2, 0), TICS_21= c(2, 1, 1, 0, 2, 3, 0, 1, 0, 1, 3, 2,
2, 1, 2, 1, 1, 1, 3, 0), TICS_22= c(3, 0, 1, 2, 2, 3, 1, 4, 0, 1, 1,
2, 3, 1, 1, 2, 3, 2, 0, 3), TICS_24= c(2, 0, 0, 1, 0, 0, 2, 0, 1, 1,
0, 2, 0, 0, 0, 1, 1, 0, 0, 1), TICS_25= c(4, 0, 1, 2, 2, 2, 4, 2, 1,
1, 0, 3, 0, 2, 0, 1, 2, 1, 2, 1), TICS_26= c(3, 0, 2, 2, 0, 1, 1, 0,
0, 1, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1), TICS_27= c(3,
1, 4, 2, 3, 3, 4, 4, 0, 1, 0, 3, 2, 3, 2, 3, 2, 2, 4, 3), TICS_28=
c(3, 2, 2, 1, 1, 2, 1, 2, 1, 1, 0, 4, 1, 2, 1, 0, 1, 0, 0, 2),
TICS_29= c(2, 0, 1, 0, 2, 2, 1, 0, 1, 0, 0, 4, 1, 1, 0, 1, 0, 0, 1,
1), TICS_30= c(2, 1, 3, 1, 2, 2, 1, 0, 1, 1, 1, 3, 2, 0, 1, 0, 1, 2,
2, 2), TICS_31= c(2, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 3, 2, 1, 0, 0, 1,
0, 2, 1), TICS_32= c(4, 1, 1, 0, 1, 2, 1, 4, 0, 3, 0, 3, 3, 2, 1, 2,
2, 2, 3, 3), TICS_33= c(2,
1, 0, 2, 1, 1, 1, 1, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 1, 1), TICS_34=
c(1, 3, 0, 0, 2, 1, 1, 1, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0),
TICS_35= c(1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 2, 0, 1, 0, 1, 1, 0, 4,
1), TICS_36= c(4, 1, 2, 3, 3, 2, 4, 1, 0, 1, 2, 3, 1, 3, 0, 1, 1, 0,
2, 1), TICS_37= c(1, 1, 2, 0, 2, 3, 3, 0, 1, 2, 1, 2, 1, 0, 2, 2, 1,
1, 2, 1), TICS_38= c(3, 0, 3, 1, 2, 2, 2, 3, 0, 2, 0, 4, 0, 2, 1, 2,
2, 1, 1, 2), TICS_39= c(1, 1, 2, 2, 3, 1, 1, 2, 1, 1, 1, 4, 1, 1, 1,
1, 3, 0, 0, 3), TICS_40= c(2, 0, 2, 0, 3, 2, 1, 2, 0, 0, 0, 3, 2, 2,
0, 1, 2, 0, 0, 1), TICS_41= c(2, 2, 0, 0, 2, 3, 1, 1, 0, 1, 3, 1, 2,
0, 1, 0, 0, 1, 2, 0), TICS_42= c(1, 2, 0, 0, 2, 1, 0, 0, 0, 1, 1, 2,
1, 1, 1, 0, 0, 0, 0, 0), TICS_43= c(4,
1, 1, 2, 2, 3, 3, 3, 0, 2, 1, 4, 3, 2, 1, 1, 3, 1, 2, 3), TICS_44=
c(3, 0, 2, 1, 2, 2, 3, 3, 0, 1, 0, 4, 1, 3, 0, 2, 2, 1, 3, 1),
TICS_45= c(2,
0, 1, 2, 0, 1, 0, 2, 0, 1, 0, 2, 0, 2, 0, 0, 0, 0, 0, 1), TICS_46=
c(2, 1, 0, 1, 2, 2, 1, 0, 0, 3, 1, 4, 3, 1, 1, 0, 1, 1, 2, 1),
TICS_47= c(3,
1, 2, 1, 2, 2, 1, 1, 1, 2, 0, 3, 1, 2, 1, 2, 1, 1, 4, 1), TICS_48=
c(1,
2, 3, 1, 2, 3, 1, 1, 0, 2, 2, 4, 2, 3, 2, 2, 1, 0, 2, 0), TICS_49=
c(1,
3, 2, 2, 1, 2, 2, 1, 0, 1, 1, 4, 3, 0, 1, 2, 4, 1, 0, 3), TICS_50=
c(3,
0, 3, 1, 1, 2, 4, 3, 0, 2, 0, 4, 2, 3, 2, 2, 2, 2, 2, 3), TICS_51=
c(1,
2, 0, 0, 2, 1, 0, 0, 0, 0, 1, 2, 1, 0, 1, 0, 0, 0, 0, 0), TICS_52=
c(2,
1, 3, 0, 1, 1, 1, 1, 0, 1, 0, 2, 0, 3, 0, 0, 0, 0, 0, 1), TICS_53=
c(2,
2, 2, 0, 2, 3, 1, 1, 0, 2, 2, 3, 2, 2, 2, 1, 1, 1, 2, 1), TICS_54=
c(3,
0, 3, 2, 2, 2, 3, 3, 1, 2, 0, 4, 0, 2, 0, 2, 2, 0, 2, 1), TICS_55=
c(2,
0, 0, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 1, 0, 1, 1, 0, 2, 0), TICS_56=
c(4,
3, 1, 0, 2, 0, 0, 0, 1, 0, 1, 2, 1, 1, 1, 0, 0, 0, 2, 0), TICS_57=
c(2,
1, 1, 0, 2, 1, 0, 0, 1, 1, 1, 4, 3, 0, 0, 1, 1, 0, 0, 2), HSPS_1 =
c(3,
4, 3, 3, 4, 2, 4, 2, 4, 2, 3, 4, 2, 2, 4, 2, 3, 3, 5, 2), HSPS_2 =
c(4,
4, 3, 5, 5, 3, 2, 4, 5, 5, 3, 4, 3, 4, 4, 2, 4, 3, 4, 3), HSPS_3 =
c(4,
4, 4, 3, 3, 4, 3, 3, 3, 3, 3, 5, 3, 4, 5, 3, 3, 3, 4, 2), HSPS_4 =
c(4,
2, 1, 4, 2, 3, 5, 3, 5, 2, 3, 3, 3, 4, 3, 3, 4, 2, 5, 2), HSPS_5 =
c(2,
2, 2, 4, 3, 3, 3, 1, 4, 3, 3, 4, 3, 2, 4, 3, 4, 3, 5, 1), HSPS_6 =
c(4,
3, 1, 3, 4, 3, 3, 3, 3, 2, 1, 1, 1, 3, 5, 3, 3, 1, 1, 2), HSPS_7 =
c(4,
3, 1, 3, 4, 2, 3, 1, 4, 3, 2, 4, 1, 1, 5, 3, 3, 1, 5, 1), HSPS_8 =
c(4,
3, 5, 5, 4, 5, 5, 3, 4, 4, 3, 3, 2, 4, 4, 3, 4, 3, 3, 3), HSPS_9 =
c(3,
2, 2, 5, 3, 3, 4, 1, 5, 2, 2, 4, 1, 2, 4, 4, 3, 1, 5, 2), HSPS_10=
c(4,
4, 5, 4, 4, 4, 3, 1, 4, 3, 3, 4, 2, 1, 5, 3, 4, 4, 3, 2), HSPS_11=
c(3,
2, 2, 3, 2, 2, 3, 1, 3, 2, 4, 5, 1, 3, 3, 3, 3, 2, 3, 2), HSPS_12=
c(4,
4, 5, 5, 4, 5, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 4, 4, 5, 4), HSPS_13=
c(3,
2, 3, 2, 2, 2, 5, 2, 3, 2, 3, 4, 3, 3, 3, 3, 4, 2, 5, 2), HSPS_14=
c(3,
2, 2, 3, 3, 3, 5, 3, 3, 2, 3, 3, 2, 3, 2, 3, 3, 2, 4, 2), HSPS_15=
c(4,
4, 2, 3, 4, 3, 3, 3, 4, 2, 3, 3, 5, 2, 4, 2, 3, 3, 3, 2), HSPS_16=
c(2,
2, 1, 5, 2, 3, 2, 2, 3, 3, 3, 5, 2, 3, 3, 3, 2, 2, 5, 2), HSPS_17=
c(4,
3, 4, 5, 3, 4, 4, 2, 4, 3, 5, 4, 4, 4, 5, 4, 5, 2, 5, 4), HSPS_18=
c(2,
2, 1, 2, 1, 2, 2, 1, 3, 2, 2, 5, 2, 1, 4, 3, 2, 1, 5, 1), HSPS_19=
c(3,
2, 2, 4, 2, 2, 3, 1, 4, 2, 2, 4, 1, 1, 4, 3, 2, 2, 5, 2), HSPS_20=
c(4,
4, 4, 3, 4, 3, 5, 3, 3, 3, 4, 3, 3, 4, 4, 3, 5, 3, 5, 2), HSPS_21=
c(3,
3, 4, 5, 3, 3, 5, 2, 4, 2, 3, 5, 4, 4, 3, 2, 3, 2, 5, 2), HSPS_22=
c(3,
5, 5, 4, 5, 4, 3, 2, 4, 3, 3, 5, 3, 2, 4, 2, 4, 3, 5, 2), HSPS_23=
c(2,
2, 1, 4, 2, 3, 4, 3, 3, 2, 2, 5, 3, 3, 3, 3, 3, 2, 5, 3), HSPS_24=
c(3,
2, 2, 3, 3, 3, 3, 2, 4, 2, 3, 5, 4, 2, 4, 4, 4, 3, 4, 2), HSPS_25=
c(3,
2, 2, 5, 3, 3, 5, 1, 4, 2, 3, 5, 3, 2, 4, 3, 3, 2, 5, 2), HSPS_26=
c(2,
1, 1, 3, 3, 3, 3, 2, 3, 2, 2, 5, 2, 2, 3, 3, 3, 2, 5, 2), HSPS_27=
c(2,
2, 1, 4, 3, 2, 3, 4, 3, 1, 4, 1, 1, 3, 4, 2, 3, 2, 5, 3), sex =
structure(c(2L,
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 1L), .Label = c("m", "w", "d"), class = "factor"), Bildung =
structure(c(6L,
5L, 5L, 6L, 6L, 6L, 5L, 6L, 5L, 6L, 6L, 4L, 6L, 5L, 5L, 6L, 6L,
5L, 5L, 6L), .Label = c("kein", "Haupt", "mittlereR", "Fachabi",
"Abi", "Studium"), class = "factor"), job = structure(c(6L, 2L,
2L, 2L, 2L, 6L, 2L, 6L, 5L, 2L, 2L, 1L, 6L, 2L, 2L, 2L, 6L, 2L,
2L, 6L), .Label = c("hausl", "Student", "Azubi", "Suchend", "Rente",
"berufstaetig"), class = "factor"), age = c(23, 24, 21, 70, 25,
29, 22, 25, 57, 24, 25, 30, 31, 20, 28, 27, 26, 21, 24, 53),
VPN = 1:20, consent = structure(c(1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label =
c("ja",
"nein"), class = "factor"), psy = c(0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0), HSPS = c(86, 75,
69, 102, 85, 82, 97, 59, 100, 68, 80, 106, 68, 73, 105, 79,
91, 63, 119, 59), neuro = c(16, 3, 4, 10, 10, 11, 12, 5,
5, 5, 5, 16, 5, 18, 4, 3, 8, 5, 19, 7), extra = c(15, 17,
19, 7, 19, 17, 18, 17, 16, 10, 17, 14, 15, 19, 11, 13, 16,
18, 9, 13), TICS_Skala1 = c(23, 1, 22, 11, 14, 16, 22, 25,
2, 11, 1, 29, 9, 20, 10, 19, 16, 9, 18, 16), TICS_Skala2 = c(14,
12, 11, 9, 11, 10, 4, 10, 5, 8, 5, 24, 13, 5, 6, 6, 14, 2,
1, 13), TICS_Skala3 = c(21, 6, 10, 5, 12, 14, 11, 20, 3,
11, 4, 27, 20, 13, 7, 13, 20, 11, 11, 18), TICS_Skala4 = c(13,
14, 13, 2, 16, 23, 10, 9, 3, 13, 15, 18, 14, 11, 13, 10,
7, 9, 17, 6), TICS_Skala5 = c(12, 2, 6, 5, 3, 5, 8, 3, 4,
6, 0, 18, 3, 7, 1, 6, 6, 1, 13, 3), TICS_Skala6 = c(10, 2,
3, 4, 4, 6, 3, 0, 0, 5, 2, 15, 10, 5, 2, 1, 5, 2, 8, 3),
TICS_Skala7 = c(15, 5, 9, 13, 4, 8, 4, 9, 1, 6, 2, 11, 2,
12, 3, 2, 1, 3, 2, 7), TICS_Skala8 = c(8, 10, 3, 0, 11, 7,
2, 1, 2, 2, 7, 20, 7, 2, 2, 2, 1, 1, 2, 3), TICS_Skala9 = c(12,
3, 4, 8, 8, 6, 9, 5, 2, 6, 5, 11, 3, 11, 1, 5, 9, 3, 7, 5
), TICS_Skala10 = c(32, 5, 18, 16, 19, 18, 21, 16, 5, 17,
7, 39, 12, 24, 3, 15, 20, 6, 25, 14), neuro.c = c(6.08921933085502,
-6.91078066914498, -5.91078066914498, 0.089219330855018,
0.089219330855018, 1.08921933085502, 2.08921933085502,
-4.91078066914498,
-4.91078066914498, -4.91078066914498, -4.91078066914498,
6.08921933085502, -4.91078066914498, 8.08921933085502,
-5.91078066914498,
-6.91078066914498, -1.91078066914498, -4.91078066914498,
9.08921933085502, -2.91078066914498), extra.c = c(5.21003717472119,
7.21003717472119, 9.21003717472119, -2.78996282527881,
9.21003717472119,
7.21003717472119, 8.21003717472119, 7.21003717472119,
6.21003717472119,
0.21003717472119, 7.21003717472119, 4.21003717472119,
5.21003717472119,
9.21003717472119, 1.21003717472119, 3.21003717472119,
6.21003717472119,
8.21003717472119, -0.78996282527881, 3.21003717472119), age.c =
c(-15.4460966542751,
-14.4460966542751, -17.4460966542751, 31.5539033457249,
-13.4460966542751,
-9.4460966542751, -16.4460966542751, -13.4460966542751,
18.5539033457249,
-14.4460966542751, -13.4460966542751, -8.4460966542751,
-7.4460966542751,
-18.4460966542751, -10.4460966542751, -11.4460966542751,
-12.4460966542751, -17.4460966542751, -14.4460966542751,
14.5539033457249), HSP.c = c(-1.92936802973978, -12.9293680297398,
-18.9293680297398, 14.0706319702602, -2.92936802973978,
-5.92936802973978,
9.07063197026022, -28.9293680297398, 12.0706319702602,
-19.9293680297398,
-7.92936802973978, 18.0706319702602, -19.9293680297398,
-14.9293680297398,
17.0706319702602, -8.92936802973978, 3.07063197026022,
-24.9293680297398,
31.0706319702602, -28.9293680297398), HSPhoch = c(1, 0, 0,
1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0)), row.names =
c(NA, 20L), class = "data.frame")

Plotly does not plot a non-quadratic surface

I want to produce a 3D scatterplot and add a surface fitted with a linear regression, using plotly. My data:
structure(list(political_trust = c(1, 6, 7, 5, 0, 2, 1, 3, 5,
0, 2, 5, 5, 6, 6, 3, 3, 2, 5, 8, 3, 7, 3, 4, 5, 4, 5, 0, 0, 4,
6, 1, 0, 4, 0, 5, 5, 6, 7, 3, 5, 4, 5, 2, 4, 4, 7, 6, 7, 5, 4,
6, 7, 5, 7, 3, 3, 3, 2, 5, 2, 7, 3, 2, 7, 2, 3, 0, 7, 5, 7, 3,
0, 7, 2, 6, 3, 8, 7, 2, 2, 5, 0, 1, 6, 3, 6, 5, 1, 3, 4, 4, 5,
3, 3, 0, 2, 4, 9, 6, 3, 3, 2, 3, 4, 5, 8, 0, 4, 1, 5, 0, 4, 0,
5, 6, 3, 2, 7, 5, 4, 3, 8, 3, 4, 0, 3, 6, 7, 7, 2, 3, 5, 5, 5,
0, 3, 2, 1, 7, 5, 0, 4, 0, 2, 7, 3, 0, 8, 3, 2, 4, 5, 5, 3, 2,
3, 8, 6, 5, 6, 7, 0, NA, 7, 7, 2, 0, 3, 4, 7, 2, 1, 2, 0, 0,
4, 3, 3, 6, 6, 1, 4, 0, 4, 0, 0, 7, 6, 4, 4, 6, 5, 4, 3, 3, 0,
NA, 2, 5), political_interest = c(2, 0, 3, 3, 2, 1, 2, 2, 2,
2, 2, 2, 3, 3, 3, 3, 2, 2, 3, 2, 1, 2, 2, 2, 2, 0, 2, 1, 3, 1,
1, 1, 1, 1, 2, 3, 2, 2, 2, 1, 3, 3, 2, 3, 2, 1, 3, 2, 0, 3, 1,
1, 2, 1, 2, 2, 1, 3, 3, 2, 3, 2, 3, 2, 2, 1, 2, 0, 3, 1, 2, 2,
1, 3, 2, 2, 1, 2, 2, 0, 3, 2, 2, 1, 2, 1, 1, 3, 1, 1, 3, 2, 0,
2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 0, 1, 1, 2, 2, 2, 2,
2, 0, 0, 2, 3, 2, 2, 2, 3, 3, 0, 3, 3, 1, 2, 1, 1, 1, 2, 3, 2,
2, 2, 0, 2, 2, 2, 1, 2, 3, 3, 1, 2, 0, 1, 1, 0, 2, 2, 1, 2, 2,
2, 2, 3, 2, 1, 2, 2, 0, 0, 3, 2, 2, 2, 1, 2, 3, 0, 1, 2, 3, 2,
2, 2, 1, 3, 1, 1, 2, 2, 3, 3, 1, 2, 2, 2, 2, 2, 1, 0, 1, 1, 0,
3, 3), education_level = c(0, 2, 1, 5, 5, 0, 4, 4, 0, 0, 3, 2,
3, 4, 0, 4, 4, 4, 4, 3, 0, NA, 4, 0, 4, 3, 4, 1, 5, 2, NA, 0,
0, 4, 3, 3, 5, 3, 4, 0, 4, 4, 0, 4, 5, 4, 2, 2, 0, 5, 3, 0, 4,
1, 5, 4, 0, 4, 4, 5, 5, 4, 4, 4, 5, 2, 3, 2, 4, 0, 4, 0, 5, 4,
4, 4, 4, 4, 4, 2, 4, 5, 3, 4, 3, 0, 4, 4, 4, 3, 4, 4, 0, 3, 4,
2, 3, 3, 0, 4, 4, 4, 5, 4, 0, 4, 4, 4, 0, 3, 1, 4, NA, 4, 0,
1, 2, 4, 0, 2, 1, 4, 4, 4, 3, NA, 5, 2, 1, 0, 0, 4, 3, 3, 4,
3, 0, 3, NA, 4, 0, 0, 4, 5, 4, 5, 2, 2, 0, 3, 4, 3, 1, 3, 2,
3, 5, 0, 4, 5, 0, 5, 2, 0, 3, NA, NA, 2, 4, 3, 4, 3, 2, 2, 4,
4, 3, 0, 4, 0, 4, 4, 3, 0, 4, 4, 3, 5, 0, 3, 0, 4, 3, 0, 3, 3,
3, 4, 5, 1)), row.names = c(NA, -200L), class = "data.frame")
I start by defining a list of relevant variables - this is not necessary but basically a consequence of using the code in a Shiny up:
input <- list()
input$x <- "education_level"
input$y <- "political_trust"
input$z <- "political_interest"
Next, creating the surface data:
# Regressing "political_interest" on "education_level" and "political_trust":
lm <- lm(as.formula(paste0(input$z, " ~ ", input$x, " + ", input$y)), data)
# Defining range of values that outcome will be predicted for
axis_x <- seq(min(data[, input$x], na.rm = T),
max(data[, input$x], na.rm = T), by = 0.2)
axis_y <- seq(min(data[, input$y], na.rm = T),
max(data[, input$y], na.rm = T), by = 0.2)
# Predicting outcome, and getting data into surface format
lm_surface <- expand.grid(x = axis_x, y = axis_y, KEEP.OUT.ATTRS = F)
colnames(lm_surface) <- c(input$x, input$y)
lm_surface <- acast(lm_surface, as.formula(paste0(input$x, " ~ ", input$y)),
value.var = input$z)
Last, plotting this with plotly:
data %>%
filter(!is.na(get(input$z))) %>%
filter(!is.na(get(input$x))) %>%
filter(!is.na(get(input$y))) %>%
plot_ly(., x = ~jitter(get(input$x), factor = 2.5),
y = ~jitter(get(input$y), factor = 2.5),
z = ~jitter(get(input$z), factor = 2.5),
type = "scatter3d", mode = "markers",
marker = list(size = 2, color = "#cccccc")) %>%
add_surface(., z = lm_surface,
x = axis_x,
y = axis_y,
type = "surface")
This gives me the following. As you can see, the surface does not cover the full range of the y-dimension. Note also that the surface plotted is "quadratic" - i.e. same length in x and y - although it should have non-quadratic dimensions.
I can bring plotly to draw larger surface area, e.g. by changing the range of values like below, but it always stays quadratic.
axis_x <- seq(0, 10, by = 0.2)
axis_y <- seq(0, 10, by = 0.2)
Ok, question solved.
It's important which dimension of the surface matrix (lm_surface) is which. Swapping x and y when applying acast fixes the issue:
lm_surface <- acast(lm_surface, as.formula(paste0(input$y, " ~ ", input$x)),
value.var = input$z)

Resources