根据不同向量中的值重新编码向量中的变量

问题描述 投票:0回答:1

这里是完整的R新手。

我有宽格式数据框,其中包括参与者编号的向量/变量,每个参与者提供两个响应(分数),并具有受试者内操作(代码)。

enter image description here

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

enter image description here

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

任何帮助,非常感谢。

r data-manipulation recode
1个回答
1
投票

“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
© www.soinside.com 2019 - 2024. All rights reserved.