0

Complete R novice here.

I have wide form data frame which includes a vector/variable for participant_number, with each participant providing two responses (score), with a within-subjects manipulation (code).

enter image description here

However, I have three separate sets of values which corresponded to the participant numbers in three different (between subjects) experimental groups (e.g. control, active_1, active_2).

enter image description here

How can I use these sets of values to create a variable in my main data frame which indicates what experimental group the participant belongs to?

Any help, much appreciated.

1 Answer 1

1

The package "dplyr" is quite useful for these kind of things. Let's consider a small working example

df <- data.frame(ID=c(1:7))
ListActive1 <- c(1,3)
ListActive2 <- c(2,5)
ListControl <- c(4,7,6)

df is the main data frame containing the ID of the participant (and of course it may have further columns, e.g. the score etc.) The three vectors contain for each group the IDs of the participants belonging to this particular group, e.g. the participants with ID 2 and 5 belong to the group "Active2".

Now we create a new column in the main data frame using the command mutate which comes with the dplyr package (make sure to install and load it).

df <- mutate(df,group=case_when(
    ID %in% ListActive1 ~ "Active1", 
    ID %in% ListActive2 ~ "Active2",
    ID %in% ListControl ~ "Control"))

The command case_when checks for each participant in which of the lists the ID appears and then puts the corresponding label in the new column group.

  ID   group
1  1 Active1
2  2 Active2
3  3 Active1
4  4 Control
5  5 Active2
6  6 Control
7  7 Control
Sign up to request clarification or add additional context in comments.

1 Comment

Perfect, worked a treat - I was trying mutate but not case_when. Thanks so much

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.