【发布时间】:2020-04-01 18:01:13
【问题描述】:
我是 R 新手,在创建新列时遇到问题,该列的值源自一组特定指令。我的数据框,称为 labdata_wide 看起来像:
共有 51 行,每个参与者一个,5 列(participant、group、baseline、week 4 和 week 8)。我想创建另一个名为 change 的列,在检查参与者 group(即参与者是 A 组还是 B 组)之后,然后执行 2 个可能的减法计算中的 1 个。
我希望 A 组参与者的 baseline 值从他们的 第 4 周 值中减去,并且 B 组参与者的 第 4 周 > 从它们的 第 8 周 值中减去的值。
A 组 -> 第 4 周 - 基线
B 组 -> 第 8 周 - 第 4 周
计算的值都必须在同一列中。有可能这样做吗?
我尝试过使用 dplyr 包,特别是 mutate 函数,但我无法弄清楚如何解决这个问题。
我试过的代码是:
labdata_wide %>% group_by(group) %>% mutate(change = week 4[group == 'A'] - baseline[group == 'A'])
但我得到错误代码:
Error: Column "change" must be length 24 (the group size) or one, not 0
奇怪的问题是,即使我指定了哪个组(即 A),我相信它使用的是 B 组值,因为在我的 df 中有 27 个 A 组成员和 24 个 B 组成员。
【问题讨论】:
-
我也是 Stack Overflow 的新手,我尝试插入我的 df 图像,但 Stack Overflow 为它创建了一个链接。该链接似乎不在我的问题中。这是链接:link