a/b/c是不同的变量,t1是时间点1,t2是时间点2,t3是时间点3。
目的是为 a_t1 到 a_t3 的每一行创建两个新列:一个具有第一列,一个具有最后一个非缺失值。在变量 b 和 c 中也没有缺失的条件下(在同一时间点)。
我认为coalesce()
可以使用某种条件格式。但是,我对此的了解是有限的。最好是 tidyverse 解决方案,但其他解决方案也可以。
library(tidyverse)
df<-tibble::tribble(
~a_t1, ~a_t2, ~a_t3, ~b_t1, ~b_t2, ~b_t3, ~c_t1, ~c_t2, ~c_t3,
1, NA, 9, 2, NA, 6, 3, NA, 7,
2, NA, 8, NA, 5, 8, NA, 1, 8,
NA, NA, 3, 2, NA, 9, 2, NA, 22,
NA, 5, 9, 4, NA, 9, 4, 5, NA,
NA, 9, 10, NA, 6, 11, NA, 6, NA
)
a 的第一个值的预期输出: 1、8、3、NA、9
a的最后一个值的预期输出: 9、8、3、NA、9
(在真实数据集中有更多的时间点和变量需要考虑)