【问题标题】:Change from baseline for repeated ids with missing baseline points从基线更改缺少基线点的重复 ID
【发布时间】:2017-05-27 01:01:29
【问题描述】:

从基线更改缺少基线点的重复 ID

下面有人提出并回答了类似的问题:

Change from baseline for repeated ids

我的问题与原始问题的不同之处在于我缺少基线值。我在下面包含了一个可重现的小示例:

df1 <- data.frame( probeID = c( rep("A", 19), rep("B",19), rep("C",19)),
                   Subject_ID = c( rep( c( rep(1,5), rep(2,4), rep(3,5), rep(4,5)),3)),
                   time = c(rep( c( c(1:5), c(2:5), rep( 1:5,2)),3)))
df1$measure <- df1$Subject_ID*c( 1:nrow(df1))

df2 <- subset( df1, Subject_ID != 2)

df2 %>%
  group_by(probeID, Subject_ID) %>%
  mutate(change = measure - measure[time==1])

但是,当我在上面的管道中将 df2 替换为 df1 时,它会失败,因为时间 = 1 个 Subject_ID=2 的数据点的数据丢失。在 df1 案例中我想要的输出应该与 df2 的输出相同。我将不胜感激。

谢谢

JJ

【问题讨论】:

    标签: r dplyr delta baseline


    【解决方案1】:

    在试图弄清楚您的问题所要求的内容时遇到了一些麻烦,这行得通吗?

    df1 %>%
      group_by(probeID, Subject_ID) %>%
      mutate(change = measure - first(measure))
    

    【讨论】:

    • 这需要对列进行排序,因此您可能需要事先arrange(probeID, Subject_ID)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 2021-07-22
    • 2017-02-12
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多