Closed ben-domingue closed 3 weeks ago
study1_Feeling_Heard_df: Note1: According to paper: A representative sample of the Dutch population through the online panel service PanelInzicht (N =217). Participants were required to be native Dutch and to have at least some experience with online conversations. Based on their descriptions of a past online conversation, we excluded 23 participants who provided nonsensical answers or indicated that they did not have the required experience The final sample consisted of 194 participants
(Q: The origainal dataframe study_1 df has 217 participants, I translated the response in Q3.1 from native Dutch to English, and remove 23 reponses looks like nonsensical)
Note2: Participants were first presented with the central item that formed the kernel of our scale “In this conversation, I felt heard by the other(s)” (Item 1). The rest of the feeling heard scale consisted of the five components: voice items referred to “I”, b) attention, empathy, and respect items were about “the other(s)”, and c) common ground items assessed “we”.
1)heard_df: 18 items, 194 participants, scale from 1 Disagree completely to 7 Agree completely 2)Voice_df: 21 items, 194 participants, scale from 1 = Disagree completely to 5 = Agree completely 3)Attention_df: 19 items, 194 participants, scale from 1 = Disagree completely to 5 = Agree completely 4)Empathy_df: 18 items, 194 participants, scale from 1 = Disagree completely to 5 = Agree completely 5)Respect_df: 18 items, 194 participants, scale from 1 = Disagree completely to 5 = Agree completely 6)Common_ground_df: 18 items, 194 participants, scale from 1 = Disagree completely to 5 = Agree completely 7)Disagree_df: 6 items, 194 participants, scale from 1 = Disagree completely to 5 = Agree completely
study2_Feeling_Heard_df: 1)Reliability_df: 289 valid participants, eight-item, 1 = Strongly disagree to 5 = Strongly agree. 2)Convergent_Validity_conversational_intimacy_df: 289 valid participants, 20 items, 1 = Strongly disagree to 7 = Strongly agree Convergent_Validity_conversational_dominance_df : 289 valid participants, 10 items, 1 = Strongly disagree to 7 = Strongly agree 3)Individualized_Trust_df:289 valid participants,15 items, 7-point scales without anchors 4)Affective_Attraction_df:289 valid participants,five items, 1 = Extremely [unpleasant] to 11 = Extremely [pleasant](inconsistent with paper: 1 = Extremely [unpleasant] to 9 = Extremely [pleasant]) 5)Perceived_partner_responsiveness_df: 289 valid participants, 18 items, rescale from (1 = Not at all true to 9 = Completely true) to (10 = Not at all true to 18 = Completely true) in the paper. Scaled back to keep consistent with the other scales. 6)Perceived_goal_accomplishment_df: 289 valid participants, three items, 1 = Strongly disagree to 5 = Strongly agree 7)Communication_Apprehension_df: 289 valid participants, 7 items, 1 = Strongly disagree to 5 = Strongly agree
study2_not_Feeling_Heard_df: 1)negative_avoidance_df: 4 items, 1000 participants, 5-point Likert scales from 1 = Strongly disagree to 5 = Strongly agree 2)positive_avoidance_df :4 items, 1000 participants, 5-point Likert scales from 1 = Strongly disagree to 5 = Strongly agree 3)negative_approach_df: 4 items, 1000 participants, 5-point Likert scales from 1 = Strongly disagree to 5 = Strongly agree 4)positive_approach_df:4 items, 1000 participants, 5-point Likert scales from 1 = Strongly disagree to 5 = Strongly agree
The original datasets were super messy. Data: Fh_Okcsr_Roos_2022_study2_Feeling_CSV.zip
Code:
# Paper: https://pubmed.ncbi.nlm.nih.gov/38032901/
# Data: https://dataverse.nl/dataset.xhtml?persistentId=doi:10.34894/IHNKUN
library(haven)
library(dplyr)
library(tidyr)
library(openxlsx)
library(readr)
library(readxl)
library(sas7bdat)
remove_na <- function(df) {
df <- df[!(rowSums(is.na(df[, -which(names(df) %in% c("id"))])) == (ncol(df) - 1)), ]
return(df)
}
study1_df <- read_sav("Feeling heard - Questionnaire data Study 1.sav")
study2_df <- read_sav("Feeling heard - Questionnaire data Study 2.sav")
study1_df[] <- lapply(study1_df, function(col) { # Remove column labels for each column
attr(col, "label") <- NULL
return(col)
})
# Exclude participants that gave nonsensical responses to Q3.1
exclude_rows <- c(9, 30, 32, 40, 56, 66, 72, 81, 84, 90, 101, 106, 110, 114, 131, 150, 162, 167, 170, 177, 189, 197, 203)
# Exclude the rows from study1 dataframe using slice
study1_df <- study1_df %>%
slice(-exclude_rows)
study2_df[] <- lapply(study2_df, function(col) { # Remove column labels for each column
attr(col, "label") <- NULL
return(col)
})
study1_df <- study1_df %>%
mutate(id = row_number() )
study2_df <- study2_df %>%
mutate(id = row_number() )
# ------ Process Study 1 Data ------
heard_df <- study1_df |>
select(ends_with("11"), ends_with("12"),id, -FL_13_DO_FL_11)
heard_df <- remove_na(heard_df)
heard_df[] <- lapply(heard_df, function(x) if (is.labelled(x)) as.numeric(x) else x)
heard_df <- pivot_longer(heard_df, cols=-c(id), names_to="item", values_to="resp")
Voice_df <- study1_df |>
select(ends_with("_1"), ends_with("_2"),ends_with("_3"),id)
Voice_df <- remove_na(Voice_df)
Voice_df[] <- lapply(Voice_df, function(x) if (is.labelled(x)) as.numeric(x) else x)
Voice_df <- pivot_longer(Voice_df, cols=-c(id), names_to="item", values_to="resp")
Attention_df <- study1_df |>
select(ends_with("_4"), ends_with("_5"),ends_with("_6"),id)
Attention_df <- remove_na(Attention_df )
Attention_df[] <- lapply(Attention_df, function(x) if (is.labelled(x)) as.numeric(x) else x)
Attention_df <- pivot_longer(Attention_df, cols=-c(id), names_to="item", values_to="resp")
Empathy_df <- study1_df |>
select(ends_with("_7"), ends_with("_8"),ends_with("_9"),id)
Empathy_df <- remove_na(Empathy_df)
Empathy_df[] <- lapply(Empathy_df, function(x) if (is.labelled(x)) as.numeric(x) else x)
Empathy_df <- pivot_longer(Empathy_df, cols=-c(id), names_to="item", values_to="resp")
Respect_df <- study1_df |>
select(ends_with("_10"), ends_with("_11"),ends_with("_12"),id,-FL_13_DO_FL_11)
Respect_df <- remove_na(Respect_df)
Respect_df[] <- lapply(Respect_df, function(x) if (is.labelled(x)) as.numeric(x) else x)
Respect_df <- pivot_longer(Respect_df, cols=-c(id), names_to="item", values_to="resp")
Common_ground_df <- study1_df |>
select(ends_with("_13"), ends_with("_14"),ends_with("_15"),id)
Common_ground_df <- remove_na(Common_ground_df)
Common_ground_df[] <- lapply(Common_ground_df, function(x) if (is.labelled(x)) as.numeric(x) else x)
Common_ground_df <- pivot_longer(Common_ground_df, cols=-c(id), names_to="item", values_to="resp")
Disagree_df <- study1_df |>
select(ends_with("_16"),id)
Disagree_df <- remove_na(Disagree_df)
Disagree_df[] <- lapply(Disagree_df, function(x) if (is.labelled(x)) as.numeric(x) else x)
Disagree_df <- pivot_longer(Disagree_df, cols=-c(id), names_to="item", values_to="resp")
heard_df$group <- "Feeling Heard Group"
Voice_df$group <- "Voice Group"
Attention_df$group <- "Attention Group"
Empathy_df$group <- "Empathy Group"
Respect_df$group <- "Respect Group"
Common_ground_df$group <- "Common ground Group"
Disagree_df$group <- "Disagree Group"
study1_Feeling_Heard_df <- rbind(heard_df,
Voice_df,
Attention_df,
Empathy_df,
Respect_df,
Common_ground_df,
Disagree_df)
save(study1_Feeling_Heard_df, file="Fh_Okcsr_Roos_2022_study1_Feeling_Heard.Rdata")
write.csv(study1_Feeling_Heard_df, "Fh_Okcsr_Roos_2022_study1_Feeling_Heard.csv", row.names=FALSE)
# ------ Process Study 2 Feeling Heard Data ------
Reliability_df <- study2_df |>
select(starts_with("Q5.1"),id)
Reliability_df <- remove_na(Reliability_df)
Reliability_df <- pivot_longer(Reliability_df , cols=-c(id), names_to="item", values_to="resp")
Convergent_Validity_conversational_intimacy_df <- study2_df |>
select(starts_with("Q6.1"),id)
Convergent_Validity_conversational_intimacy_df <- remove_na(Convergent_Validity_conversational_intimacy_df)
Convergent_Validity_conversational_intimacy_df <- pivot_longer(Convergent_Validity_conversational_intimacy_df , cols=-c(id), names_to="item", values_to="resp")
Convergent_Validity_conversational_dominance_df<- study2_df |>
select(starts_with("Q75"),id)
Convergent_Validity_conversational_dominance_df <- remove_na(Convergent_Validity_conversational_dominance_df)
Convergent_Validity_conversational_dominance_df <- pivot_longer(Convergent_Validity_conversational_dominance_df, cols=-c(id), names_to="item", values_to="resp")
Individualized_Trust_df <- study2_df |>
select(starts_with("Q8.1"),id)
Individualized_Trust_df <- remove_na(Individualized_Trust_df)
Individualized_Trust_df <- pivot_longer(Individualized_Trust_df , cols=-c(id), names_to="item", values_to="resp")
Affective_Attraction_df <- study2_df |>
select(starts_with("Q9"),id)
Affective_Attraction_df <- remove_na(Affective_Attraction_df)
Affective_Attraction_df <- pivot_longer(Affective_Attraction_df , cols=-c(id), names_to="item", values_to="resp")
Perceived_partner_responsiveness_df <- study2_df |>
select(starts_with("Q10.1"),id)
Perceived_partner_responsiveness_df <- remove_na(Perceived_partner_responsiveness_df )
Perceived_partner_responsiveness_df <- pivot_longer(Perceived_partner_responsiveness_df, cols=-c(id), names_to="item", values_to="resp")
Perceived_goal_accomplishment_df <- study2_df |>
select(starts_with("Q11.1"),id)
Perceived_goal_accomplishment_df <- remove_na(Perceived_goal_accomplishment_df)
Perceived_goal_accomplishment_df <- pivot_longer(Perceived_goal_accomplishment_df, cols=-c(id), names_to="item", values_to="resp")
Communication_Apprehension_df <- study2_df |>
select(starts_with("Q12.1"),id)
Communication_Apprehension_df <- remove_na(Communication_Apprehension_df)
Communication_Apprehension_df <- pivot_longer(Communication_Apprehension_df, cols=-c(id), names_to="item", values_to="resp")
Reliability_df$group <- "Reliability Group"
Convergent_Validity_conversational_intimacy_df $group <- "Convergent Validity Conversational Intimacy Group"
Convergent_Validity_conversational_dominance_df $group <- "Convergent Validity Conversational Dominance Group"
Individualized_Trust_df$group <- "Individualized Trust Group"
Affective_Attraction_df$group <- "Affective Attraction Group"
Perceived_partner_responsiveness_df$group <- "Perceived Partner Responsiveness Group"
Perceived_goal_accomplishment_df$group <- "Perceived Goal Accomplishment Group"
Communication_Apprehension_df$group <- "Communication Apprehension Group"
convert_labelled_to_numeric <- function(df) {
df[] <- lapply(df, function(x) {
if (is.labelled(x)) {
# If it's a labelled column, convert it to numeric (which removes labels)
as.numeric(x)
} else {
x
}
})
return(df)
}
# Apply this conversion to all data frames
Reliability_df <- convert_labelled_to_numeric(Reliability_df)
Convergent_Validity_conversational_intimacy_df <- convert_labelled_to_numeric(Convergent_Validity_conversational_intimacy_df )
Convergent_Validity_conversational_dominance_df <- convert_labelled_to_numeric(Convergent_Validity_conversational_dominance_df)
Individualized_Trust_df <- convert_labelled_to_numeric(Individualized_Trust_df)
Affective_Attraction_df <- convert_labelled_to_numeric(Affective_Attraction_df)
Perceived_partner_responsiveness_df <- convert_labelled_to_numeric(Perceived_partner_responsiveness_df)
Perceived_goal_accomplishment_df <- convert_labelled_to_numeric(Perceived_goal_accomplishment_df)
Communication_Apprehension_df <- convert_labelled_to_numeric(Communication_Apprehension_df)
study2_Feeling_Heard_df <- rbind(Reliability_df,
Convergent_Validity_conversational_intimacy_df,
Convergent_Validity_conversational_dominance_df,
Individualized_Trust_df,
Affective_Attraction_df,
Perceived_partner_responsiveness_df,
Perceived_goal_accomplishment_df,
Communication_Apprehension_df)
study2_Feeling_Heard_df$resp <- ifelse(study2_Feeling_Heard_df$resp >= 10 & study2_Feeling_Heard_df$resp <= 18, study2_Feeling_Heard_df$resp - 9, study2_Feeling_Heard_df$resp)
# ------ Process Negative Avoidance Study 2 Data ------
negative_avoidance_df <- study2_df %>%
select(Q13.1_1, Q23.1_1, Q13.1_2, Q23.1_2,id)
negative_avoidance_df <- remove_na(negative_avoidance_df )
negative_avoidance_df <- pivot_longer(negative_avoidance_df , cols=-c(id), names_to="item", values_to="resp")
# Positive Avoidance
positive_avoidance_df <- study2_df %>%
select(Q13.1_3, Q23.1_3, Q13.1_4, Q23.1_4, id)
positive_avoidance_df <- remove_na(positive_avoidance_df )
positive_avoidance_df <- pivot_longer(positive_avoidance_df, cols=-c(id), names_to="item", values_to="resp")
# Negative Approach
negative_approach_df <- study2_df %>%
select(Q13.1_5, Q23.1_5, Q13.1_6, Q23.1_6, id)
negative_approach_df <- remove_na(negative_approach_df)
negative_approach_df<- pivot_longer(negative_approach_df , cols=-c(id), names_to="item", values_to="resp")
# Positive Approach
positive_approach_df <- study2_df %>%
select(Q13.1_7, Q23.1_7, Q13.1_8, Q23.1_8, id)
positive_approach_df <- remove_na(positive_approach_df)
positive_approach_df <- pivot_longer(positive_approach_df, cols=-c(id), names_to="item", values_to="resp")
negative_avoidance_df <- convert_labelled_to_numeric(negative_avoidance_df)
positive_avoidance_df <- convert_labelled_to_numeric(positive_avoidance_df)
negative_approach_df <- convert_labelled_to_numeric(negative_approach_df)
positive_approach_df <- convert_labelled_to_numeric(positive_approach_df)
study2_not_feeling_heard_df <- rbind(negative_avoidance_df,
positive_avoidance_df,
negative_approach_df,
positive_approach_df)
study2_not_feeling_heard_df$group <- "negative"
study2_Feeling_Heard_df$group <- "positive"
study2_df <- rbind(study2_Feeling_Heard_df, study2_not_feeling_heard_df)
save(study2_df, file="Fh_Okcsr_Roos_2022_study2_Feeling_Heard.Rdata")
write.csv(study2_df, "Fh_Okcsr_Roos_2022_study2_Feeling_Heard.csv", row.names=FALSE)
@KingArthur0205 i'm inclined to cut this one. fewer respondents than items is (in most cases) not that worthwhile especially when the N of people is <100. Fh_Okcsr_Roos_2022_study3_Feeling_Heard.Rdata
and could these be combined?
@ben-domingue
Removal of Study 3 Data: Certainly! I’ve removed the Study 3 data.
Merging Decisions: a. Within each study, I’ve merged the sub-scales that assess participants' feelings about having conversations with others, covering aspects such as trust, feelings, and emotions. b. I tend to keep the datasets separate because: 1. They measure different aspects. Study 1 specifically targets online conversations, focusing on participants' physical and emotional responses during these interactions. 2. Study 2 looks at conversations in a broader context, including online interactions. The intent is to apply theories about traditional conversations from Study 2 to validate conclusions drawn from Study 1. : ) 3. The 2 datasets in Study 2 can be merged as they measured positve/negative feelings about conversations, which share some commonalities
@KingArthur0205 i just downloaded the data and am still seeing study 3. i can just remove that one manually NBD but wanted to double check to see if anything else had changed.
@ben-domingue I haven't changed the data for this one as I'd like to confirm if you'd agree that "the 2 datasets in Study 2 can be merged as they measured positve/negative feelings about conversations, which share some commonalities"
so the study 2 dataset: are they the same scales in different contexts?
All questions were asked in the context of how participants felt during conversations. The difference is that the negative data frame focused on negative feelings (e.g., "I’m afraid to engage in conversation"), while the positive data frame focused on positive feelings (e.g., "I feel understood").
i think in that case i'd be inclined to merge and just include a variable for context.
@ben-domingue Got it. In this case, I'll include a group and have the values marked as "positive" and "negative"
@ben-domingue The code and data have been updated in the cell above. Let me know if you find it acceptable, and I’ll create the PR.
ok ship PR @KingArthur0205
PR for this one: https://github.com/ben-domingue/irw/pull/646/files
https://dataverse.nl/dataset.xhtml?persistentId=doi:10.34894/IHNKUN