r-为随访创建假人

  • 本文关键字:创建 假人 r panel
  • 更新时间 :
  • 英文 :


我有一个简单的数据结构,包含id和时间序列指示符(prd(。我想为随访访问创建一个虚拟变量"fup",如果患者没有更多的访问,则等于0,如果患者将来有更多的访问则等于1。

我该怎么做?

id<- c(1, 1, 1, 2, 3, 3)
prd <- c(1, 2, 3, 1, 1, 2)
df <- data.frame(id=id, prd=prd)

期望输出:

id prd fup
1  1   1   1
2  1   2   1
3  1   3   0
4  2   1   0
5  3   1   1
6  3   2   0

我们可以检查当前行是否是每组中的最后一行。在基本R中,

df$fup <- with(df, ave(prd, id, FUN = function(x) seq_along(x) != length(x)))
df
#  id prd fup
#1  1   1   1
#2  1   2   1
#3  1   3   0
#4  2   1   0
#5  3   1   1
#6  3   2   0

类似地,在dplyr中,

library(dplyr)
df %>%  group_by(id) %>%  mutate(fup = +(row_number() != n()))

data.table

library(data.table)
setDT(df)[, fup := +(seq_along(prd) != .N), by = id]

最新更新