Reputation: 49
I'm trying to clean my dataset. The dataset comes from a survey that had a randomizer. It displayed different scenarios to each participant. My dataset now has a column for each different scenario with the name I chose for it (e.g.: A_SM_GIL or D_DF_GIL etc.). The underscore "" separates the different scenarios variables that are combined together to form a new scenario. A, D_, B_, N_ are the timing for a disclosure message during the advertising, respectively AFTER, DURING, BEFORE,and NONEF. SM_, and DF_, stand for the type of terminology used. Respectively SYNTHETIC MEDIA, and DEEPFAKE. The last bit, LOR_, GIL_, describes the brand's ad. Respectively L'Oreal, Gillette.
What I am left now is a bunch of columns that show with a "1" the scenario each observation was exposed to before answering a 7point likert scale to measure their attitudes towards the ad shown. The scale used is called ADTEST (AD_) and has different items (BORING_1, IRRITATING_1, etc).
Only 1 scenario for observation is possible. So one observation will have a column with 1 and all the others with NAs.
My goal is to compare the different scenarios' attitudes. For example, studying if positioning the disclosure before the ad makes a difference than positioning it after the ad. I would like to plot the different answers (using a 7 point likert scale i.e.: AD_BORING_1 etc) people gave but divided into the different scenarios to compare them.
structure(list(D_DF_GIL = c(NA, NA, NA, NA, NA, NA, NA, 1, NA,
NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA,
1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 1, NA, 1, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA,
1, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA,
1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, 1, NA, NA, NA,
1, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA,
NA, NA, NA, NA, NA, NA), A_SM_GIL = c(NA, NA, NA, NA, 1, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA,
NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, 1, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, 1, NA, NA, 1, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, 1, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 1, NA), A_DF_GIL = c(NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1,
NA, NA, NA, NA, NA, NA, NA, 1, NA, 1, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 1, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 1, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1,
NA, NA, 1, NA, NA, 1, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), N_DF_GILL = c(1,
NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA,
NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA,
NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, 1, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
1, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, 1, NA,
NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, 1, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA), AD_BORING_1 = c("7",
"6", "5", "3", "4", "3", "5", "2", "4", "5", "3", "2", "5", "3",
"4", "4", "5", "5", "1", "1", "4", "7", "4", "4", "3", "6", "1",
"5", "2", "5", "3", "2", "2", "7", "6", "6", "6", "5", "4", "4",
"6", "7", "3", "2", "1", "5", "5", "5", "5", "5", "6", "4", "5",
"3", "5", "2", "7", "5", "2", "2", "3", "1", "5", "5", "4", "5",
"1", "3", "2", "6", "5", "1", "3", "3", "5", "6", "5", "6", "2",
"3", "5", "6", "5", "4", "6", "5", "4", "3", "5", "5", "4", "6",
"2", "4", "6", "3", "4", "5", "3", "2", "6", "6", "5", "6", "3",
"2", "6", "5", "4", "2", "3", "6", "4", "7", "3", "1", "4", "4",
"5", "4", "2", "5", "6", "3", "5", "6", "4", "2", "5", "5", "3",
"2", "3", "1", "6", "2", "1", "5", "5", "2", "6", "1", "6", "5",
"2", "5", "2", "2", "4", "2", "2", "4", "4", "6", "3", "5", "5",
"3", "2", "4", "7", "4", "4", "2", "5", "3", "2", "3", "3", "4",
"2", "5", "6", "4", "4", "7", "4", "6", "3", "4", "2", "4", "3",
"2", "6", "5", "5", "5", "4", "2", "3", "3", "5", "5", "6", "6",
"7", "4", "2", "6", "3", "6", "4", "2", "7", "6", "4", "3", "2",
"5", "5", "6", "5", "2", "7", "2", "3", "5", "2", "3", "5", "5",
"5", "2", "4", "3", "5", "2", "3", "3", "2", "5", "5", "3", "3",
"5", "3", "2", "5", "3", "7", "5", "5", "5", "4", "2", "4", "2",
"3", "4", "5", "2", "5", "7", "6", "4", "5", "6", "3", "5", "3",
"2", "4", "5", "5", "3", "1", "4", "7", "5", "6", "3", "3", "4",
"5", "6", "5", "4", "1", "5", "2", "3", "7", "3", "4", "5", "3",
"3", "5", "5", "2", "5", "4", "5", "2", "6", "2", "6", "4", "2",
"3", "4", "6", "3", "2", "5", "2", "6", "2", "1", "3", "4", "1",
"2", "5", "4", "3", "7", "5", "6", "6", "3", "4", "2", "4", "5",
"2", "4", "3", "3", "2", "2", "3", "5", "3", "1", "3", "2", "2",
"4", "2", "2", "3", "1", "4", "2", "5", "2", "5", "5", "5", "2",
"5", "5", "4", "2", "7", "5", "5", "3", "4", "5", "3", "4", "3",
"2", "5"), AD_IRRITATING_1 = c("4", "7", "3", "5", "4", "3",
"4", "4", "4", "3", "4", "2", "2", "4", "1", "2", "1", "4", "1",
"1", "4", "7", "5", "4", "2", "2", "6", "4", "2", "5", "1", "2",
"2", "4", "2", "5", "4", "6", "4", "4", "7", "6", "3", "2", "1",
"4", "2", "2", "4", "2", "7", "5", "2", "5", "2", "2", "6", "2",
"5", "2", "2", "4", "6", "5", "4", "3", "2", "5", "1", "4", "2",
"2", "2", "2", "2", "4", "5", "3", "5", "5", "1", "4", "4", "5",
"4", "4", "4", "4", "4", "2", "2", "4", "2", "5", "7", "4", "5",
"3", "2", "1", "4", "6", "3", "6", "3", "2", "6", "2", "3", "2",
"2", "4", "2", "7", "3", "1", "4", "5", "2", "4", "1", "5", "5",
"5", "5", "6", "2", "3", "5", "5", "2", "2", "3", "2", "6", "2",
"1", "4", "2", "2", "5", "2", "2", "3", "2", "4", "2", "2", "2",
"2", "2", "4", "5", "5", "1", "5", "2", "5", "1", "2", "2", "4",
"5", "2", "4", "3", "2", "5", "2", "4", "2", "2", "4", "3", "5",
"5", "3", "3", "1", "5", "2", "5", "6", "3", "4", "2", "6", "4",
"4", "2", "2", "2", "2", "2", "4", "1", "6", "3", "2", "5", "1",
"4", "5", "2", "2", "2", "6", "1", "1", "2", "3", "5", "7", "5",
"7", "2", "3", "2", "3", "2", "1", "2", "5", "2", "4", "4", "6",
"2", "3", "3", "1", "5", "4", "4", "3", "4", "4", "2", "4", "4",
"5", "4", "6", "4", "4", "2", "5", "2", "2", "2", "7", "2", "3",
"6", "5", "3", "3", "6", "1", "6", "2", "2", "5", "4", "2", "4",
"1", "2", "4", "6", "4", "1", "2", "4", "2", "2", "4", "3", "1",
"2", "2", "4", "4", "3", "5", "2", "4", "4", "5", "5", "3", "5",
"4", "2", "2", "4", "5", "4", "2", "5", "2", "4", "3", "2", "1",
"2", "2", "6", "5", "2", "1", "2", "1", "3", "6", "4", "4", "6",
"3", "4", "4", "2", "2", "1", "4", "1", "2", "3", "2", "2", "5",
"2", "3", "7", "7", "3", "2", "2", "3", "3", "1", "5", "2", "1",
"4", "2", "5", "2", "5", "4", "4", "2", "5", "6", "2", "1", "2",
"4", "4", "2", "5", "2", "4", "2", "5", "2", "7")), row.names = c(NA,
-367L), class = c("tbl_df", "tbl", "data.frame"))
I was thinking I could create a new column made of the other columns' name if a condition is met (in this case the fact that a column has a 1 and not NA).
Something like this
Another problem is all around the dataset there are other columns, so I need to specify exactly the columns to analyze.
Thank you so much for your time.
Upvotes: 1
Views: 79
Reputation: 5204
Here you can get what I think you're after with two successive applications of tidyr::pivot_longer()
.
pivot_longer()
consolidates all the different scenarios into a single column so there is still one row per participant and one column that indicates what scenario group that participant was in.pivot_longer()
again to get the different adjectives into a single column.dplyr::mutate()
with stringr::str_extract()
to parse the adjective
column.tidyr::separate()
GIL
/GILL
so I cleaned that up which will help them sort together, but omit if that was intentional.factors
with mutate(across(everything(), factor))
.Once cleaned in this way, the data should be much easier to work with and visualize.
library(tidyverse)
d <- structure(list(D_DF_GIL = c(NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, 1, NA, NA, NA, 1, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA), A_SM_GIL = c(NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA), A_DF_GIL = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, 1, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, 1, NA, NA, 1, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), N_DF_GILL = c(1, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1,
NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA), AD_BORING_1 = c("7", "6", "5", "3", "4", "3", "5", "2", "4", "5", "3", "2", "5", "3", "4", "4", "5", "5", "1", "1", "4", "7", "4", "4", "3", "6", "1", "5", "2", "5", "3", "2", "2", "7", "6", "6", "6", "5", "4", "4", "6", "7", "3", "2", "1", "5", "5", "5", "5", "5", "6", "4", "5", "3", "5", "2", "7", "5", "2", "2", "3", "1", "5", "5", "4", "5", "1", "3", "2", "6", "5", "1", "3", "3", "5", "6", "5", "6", "2", "3", "5", "6", "5", "4", "6", "5", "4", "3", "5", "5", "4", "6", "2", "4", "6", "3", "4", "5", "3", "2", "6", "6", "5", "6", "3", "2", "6", "5", "4", "2", "3", "6", "4", "7", "3", "1", "4", "4", "5", "4", "2", "5", "6", "3", "5", "6", "4", "2", "5", "5", "3", "2", "3", "1", "6", "2", "1", "5", "5", "2", "6", "1", "6", "5", "2", "5", "2", "2", "4", "2", "2", "4", "4", "6", "3", "5", "5", "3", "2", "4", "7", "4", "4", "2", "5", "3", "2", "3", "3", "4", "2", "5", "6", "4", "4", "7", "4", "6", "3", "4", "2", "4", "3", "2", "6", "5", "5", "5", "4", "2", "3", "3", "5", "5", "6", "6", "7", "4", "2", "6", "3", "6", "4", "2", "7", "6", "4", "3", "2", "5", "5", "6", "5", "2", "7", "2", "3", "5", "2", "3", "5", "5", "5", "2", "4", "3", "5", "2", "3", "3", "2", "5", "5", "3", "3", "5", "3", "2", "5", "3", "7", "5", "5", "5", "4", "2", "4", "2", "3", "4", "5", "2", "5", "7", "6", "4", "5", "6", "3", "5", "3", "2", "4", "5", "5", "3", "1", "4", "7", "5", "6", "3", "3", "4", "5", "6", "5", "4", "1", "5", "2", "3", "7", "3", "4", "5", "3", "3", "5", "5", "2", "5", "4", "5", "2", "6", "2", "6", "4", "2", "3", "4", "6", "3", "2", "5", "2", "6", "2", "1", "3", "4", "1", "2", "5", "4", "3", "7", "5", "6", "6", "3", "4", "2", "4", "5", "2", "4", "3", "3", "2", "2", "3", "5", "3", "1", "3", "2", "2", "4", "2", "2", "3", "1", "4", "2", "5", "2", "5", "5", "5", "2", "5", "5", "4", "2", "7", "5", "5", "3", "4", "5", "3", "4", "3", "2", "5"), AD_IRRITATING_1 = c("4", "7", "3", "5", "4", "3", "4", "4", "4", "3", "4", "2", "2", "4", "1", "2", "1", "4", "1", "1", "4", "7", "5", "4", "2", "2", "6", "4", "2", "5", "1", "2", "2", "4", "2", "5", "4", "6", "4", "4", "7", "6", "3", "2", "1", "4", "2", "2", "4", "2", "7", "5", "2", "5", "2", "2", "6", "2", "5", "2", "2", "4", "6", "5", "4", "3", "2", "5", "1", "4", "2", "2", "2", "2", "2", "4", "5", "3", "5", "5", "1", "4", "4", "5", "4", "4", "4", "4", "4", "2", "2", "4", "2", "5", "7", "4", "5", "3", "2", "1", "4", "6", "3", "6", "3", "2", "6", "2", "3", "2", "2", "4", "2", "7", "3", "1", "4", "5", "2", "4", "1", "5", "5", "5", "5", "6", "2", "3", "5", "5", "2", "2", "3", "2", "6", "2", "1", "4", "2", "2", "5", "2", "2", "3", "2", "4", "2", "2", "2", "2", "2", "4", "5", "5", "1", "5", "2", "5", "1", "2", "2", "4", "5", "2", "4", "3", "2", "5", "2", "4", "2", "2", "4", "3", "5", "5", "3", "3", "1", "5", "2", "5", "6", "3", "4", "2", "6", "4", "4", "2", "2", "2", "2", "2", "4", "1", "6", "3", "2", "5", "1", "4", "5", "2", "2", "2", "6", "1", "1", "2", "3", "5", "7", "5", "7", "2", "3", "2", "3", "2", "1", "2", "5", "2", "4", "4", "6", "2", "3", "3", "1", "5", "4", "4", "3", "4", "4", "2", "4", "4", "5",
"4", "6", "4", "4", "2", "5", "2", "2", "2", "7", "2", "3", "6", "5", "3", "3", "6", "1", "6", "2", "2", "5", "4", "2", "4", "1", "2", "4", "6", "4", "1", "2", "4", "2", "2", "4", "3", "1", "2", "2", "4", "4", "3", "5", "2", "4", "4", "5", "5", "3", "5", "4", "2", "2", "4", "5", "4", "2", "5", "2", "4", "3", "2", "1", "2", "2", "6", "5", "2", "1", "2", "1", "3", "6", "4", "4", "6", "3", "4", "4", "2", "2", "1", "4", "1", "2", "3", "2", "2", "5", "2", "3", "7", "7", "3", "2", "2", "3", "3", "1", "5", "2", "1", "4", "2", "5", "2", "5", "4", "4", "2", "5", "6", "2", "1", "2", "4", "4", "2", "5", "2", "4", "2", "5", "2", "7")), row.names = c(NA, -367L), class = c("tbl_df", "tbl", "data.frame"))
# make labels in case that helps
likert_breaks <- c("Strongly Disagree", "Somewhat Disagree", "Slightly Disagree", "Neutral", "Slightly Agree", "Somewhat Agree", "Strongly Agree")
# transform to long format and parse out metadata
d_long <- d %>%
pivot_longer(cols = !starts_with("AD"),
names_to = "group",
values_to = "drop",
values_drop_na = T) %>%
select(-drop) %>%
pivot_longer(cols = starts_with("AD"),
names_to = "adjective",
values_to = "likert") %>%
mutate(adjective = str_extract(adjective, "(?<=_)(.*)(?=_)")) %>%
separate(group, into = c("pretreat", "treat", "ad")) %>%
mutate(ad = if_else(ad == "GILL", "GIL", ad)) %>%
mutate(across(everything(), factor))
str(d_long)
#> tibble [150 x 5] (S3: tbl_df/tbl/data.frame)
#> $ pretreat : Factor w/ 3 levels "A","D","N": 3 3 1 1 2 2 3 3 2 2 ...
#> $ treat : Factor w/ 2 levels "DF","SM": 1 1 2 2 1 1 1 1 1 1 ...
#> $ ad : Factor w/ 1 level "GIL": 1 1 1 1 1 1 1 1 1 1 ...
#> $ adjective: Factor w/ 2 levels "BORING","IRRITATING": 1 2 1 2 1 2 1 2 1 2 ...
#> $ likert : Factor w/ 7 levels "1","2","3","4",..: 7 4 4 4 2 4 4 4 3 4 ...
Since I got the impression you were hoping to look at the response profile by treatment group I wanted to provide some code to get you a plot of that fashion. Here there are a couple of important steps to make sure you get all of the bars in all plots in the right position.
factor
s to ensure they can keep even empty levels.dplyr::summarize(n = n())
to count the responses per group per likert score.factor
s we can then use tidyr::complete()
to expand out all of the groups and fill 0
when there was no response of that type. This way we will force the graph to keep space for every bar even if it wasn't observed in the data.# bonus: plot the data
d_long %>%
group_by(across(everything())) %>%
summarize(n = n(), .groups = "drop") %>%
complete(pretreat, treat, ad, adjective, likert, fill = list(n = 0)) %>%
ggplot(aes(x = adjective, y = n, fill = likert)) +
geom_bar(stat = "identity", position = "dodge") +
facet_grid(pretreat ~ treat) +
scale_fill_viridis_d(option = "A", begin = 0, end = 0.85, labels = likert_breaks, drop = F) +
theme_bw()
Created on 2022-02-09 by the reprex package (v2.0.1)
Upvotes: 2
Reputation: 145775
I'd do it like this:
scenario_cols = df %>%
select(D_DF_GIL:N_DF_GILL) %>%
names
df$new_col = scenario_cols[apply(
df[scenario_cols], 1,
\(x) if(all(is.na(x))) NA else which.max(x)
)]
df$new_col
# [1] "N_DF_GILL" NA NA NA "A_SM_GIL" NA NA "D_DF_GIL"
# [9] "N_DF_GILL" NA NA NA NA "D_DF_GIL" NA NA
# [17] NA NA NA NA NA NA NA NA
# [25] NA NA NA NA NA NA "N_DF_GILL" NA
# [33] "A_DF_GIL" NA NA "A_SM_GIL" NA NA NA "A_SM_GIL"
# ...
Upvotes: 0
Reputation: 2609
What you want to do is transform many dummy variables to one factor variable (with levels corresponding to dummy variable names).
I give a small reproducible example similar to your data:
library(tidyverse)
df <- structure(list(dummy1 = c(NA, 1, NA, NA),
dummy2 = c(1, NA, 1, NA), dummy3 = c(NA, NA, NA, 1)),
.Names = c("dummy1", "dummy2", "dummy3"), class = "data.frame", row.names = c(NA, -4L))
df
#> dummy1 dummy2 dummy3
#> 1 NA 1 NA
#> 2 1 NA NA
#> 3 NA 1 NA
#> 4 NA NA 1
df %>%
tidyr::pivot_longer(cols = dummy1:dummy3, names_to = "dummy", values_to = "value", values_drop_na = TRUE) %>%
dplyr::mutate(dummy = as.factor(dummy)) %>%
dplyr::select(-value)
#> # A tibble: 4 x 1
#> dummy
#> <fct>
#> 1 dummy2
#> 2 dummy1
#> 3 dummy2
#> 4 dummy3
Created on 2022-02-08 by the reprex package (v2.0.1)
UPDATE: After posting your data, I simplified to only the pivot_longer
(the mutate
transformed dummy
to factor, the select
just dropped the value
column that you don't need).
df %>%
tidyr::pivot_longer(cols = D_DF_GIL:N_DF_GILL, names_to = "dummy", values_to = "value", values_drop_na = TRUE)
# A tibble: 75 x 4
AD_BORING_1 AD_IRRITATING_1 dummy value
<chr> <chr> <chr> <dbl>
1 7 4 N_DF_GILL 1
2 4 4 A_SM_GIL 1
3 2 4 D_DF_GIL 1
4 4 4 N_DF_GILL 1
5 3 4 D_DF_GIL 1
6 3 1 N_DF_GILL 1
7 2 2 A_DF_GIL 1
8 6 5 A_SM_GIL 1
9 4 4 A_SM_GIL 1
10 1 1 N_DF_GILL 1
# ... with 65 more rows
Upvotes: 2