【发布时间】:2021-09-29 22:55:10
【问题描述】:
我想在每个参与者多行的实验数据中添加一个新列,其中新列的值是轮流为每个参与者计算的。
让我们假设以下虚拟示例:
my_data <- tibble(
participant_id = c(rep(1, 4), rep(2, 4)),
suffix = c('su', 'bi', 'fa', 'su', 'va', 'va', 'bi', 'su')
)
在单个后缀向量(即只有一个参与者)上,我已经能够使用以下代码为我提供相应的 1 和 0 向量(1 表示后缀是唯一的,0 表示重复):
ifelse(!suffix %in% suffix[duplicated(suffix)], 1, 0)
但我不知道如何依次为每个参与者执行此操作以获得包含 1 的列,其中后缀是唯一的该参与者和重复的 0 为该参与者。
我能想到的唯一(丑陋)方法是创建一个新的虚拟列,将participant_id 和suffix 粘合在一起(因此值将是例如'1_su', '1_bi' 等)并运行@ 987654326@ 该列的声明。有没有更好的方法来按participant_id 分组?
【问题讨论】:
标签: r if-statement dplyr tibble