首页 > 解决方案 > 根据不同向量中的值重新编码向量中的变量

问题描述

在这里完成 R 新手。

我有一个宽格式数据框,其中包括一个用于参与者编号的向量/变量,每个参与者提供两个响应(分数),以及一个主题内操作(代码)。

在此处输入图像描述

但是,我有三组独立的值,它们对应于三个不同(受试者之间)实验组(例如控制、active_1、active_2)中的参与者人数。

在此处输入图像描述

如何使用这些值集在我的主数据框中创建一个变量,指示参与者属于哪个实验组?

任何帮助,非常感谢。

标签: rdata-manipulationrecode

解决方案


包“dplyr”对于这类事情非常有用。让我们考虑一个小的工作示例

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

df是包含参与者 ID 的主数据框(当然它可能还有其他列,例如分数等)。这三个向量包含每个组的参与者的 ID,属于该特定组的参与者,例如具有 ID 的参与者2 和 5 属于“Active2”组。

mutate现在我们使用包附带的命令在主数据框中创建一个新列dplyr(确保安装并加载它)。

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

该命令case_when检查每个参与者的 ID 出现在哪些列表中,然后将相应的标签放在新列group中。

  ID   group
1  1 Active1
2  2 Active2
3  3 Active1
4  4 Control
5  5 Active2
6  6 Control
7  7 Control

推荐阅读