r - 根据不同向量中的值重新编码向量中的变量
问题描述
在这里完成 R 新手。
我有一个宽格式数据框,其中包括一个用于参与者编号的向量/变量,每个参与者提供两个响应(分数),以及一个主题内操作(代码)。
但是,我有三组独立的值,它们对应于三个不同(受试者之间)实验组(例如控制、active_1、active_2)中的参与者人数。
如何使用这些值集在我的主数据框中创建一个变量,指示参与者属于哪个实验组?
任何帮助,非常感谢。
解决方案
包“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
推荐阅读
- scipy - 简单的 scipy curve_fit 测试未返回预期结果
- javascript - 如何在项目数组中选择一个按钮并取消选择前一个值
- python - SQLAlchemy 的“post_update”与已从会话中删除的对象的行为不同
- node.js - npm - 更新 @angular/cli 后如何修复错误代码 ELIFECYCLE
- java - Wire concrete implementation to interface in blueprint.xml
- node.js - nodejs request.body 没有显示任何参数
- jenkins - 如何在 Jenkinsfile 中获取项目类型详细信息?
- f# - 如何在 F# 中正确使用管道和柯里化?
- postgresql - SQL 使用 Date 执行计算
- mysql - 加入(内、外、左、右)表时可能的结果是什么?