【问题标题】:Recoding variables in vector based on values in different vector根据不同向量中的值重新编码向量中的变量
【发布时间】:2021-07-27 16:01:08
【问题描述】:

在这里完成 R 新手。

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

enter image description here

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

enter image description here

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

任何帮助,非常感谢。

【问题讨论】:

    标签: r data-manipulation recode


    【解决方案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
    

    【讨论】:

    • 完美,成功了——我在尝试变异,但不是 case_when。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多