我有一些这样的纵向数据:
id <- c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9)
var1 <- c(0,1,1,1,NA,2,2,NA,NA,NA,1,1,0,1,1,2,1,2,NA,1,1,2,2,NA,NA,2,NA)
var2 <- c(1,NA,NA,2,1,NA,1,1,NA,0,0,1,NA,0,1,1,0,0,0,NA,1,1,1,2,0,NA,2)
visit <- rep(1:3, 9)
dt <- as.data.frame(cbind(id, var1, var2, visit))
每个不同的id
代表一个患者。visit
是测量周期(即,每个患者应测量三次)。我想对患者id
的var1
和var2
进行末次观察结果结转。我在另一篇文章中找到了一些代码。它使用了zoo
和gsubfn
包中的函数。它对一个变量运行良好(见下文)
dt1 <- transform(dt, var1=fn$ave(var1, id, FUN= ~ na.locf(x, na.rm = FALSE)))
我想知道如何使用多列?谢谢你。
1条答案
按热度按时间e4yzc0pl1#
使用dplyr你可以