R中长数据中通过id匹配从同一列的行值中添加行值

qij5mzcb  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(81)

我有一个数据集data 1,其中收集了一些参与者在不同时间点的数据

data1 <- data.frame(id=c(10239, 10239,10239,10240, 10240,10240, 10241, 10242,10242,10242,10242,10242, 10243, 10243,10243,10243,10243,10244, 10245, 10246, 10247,10247,10247,10247,10247, 10248), var1=c(2,NA,NA, 3,NA,NA, 8, 4, NA,NA,NA,NA, 5, NA,NA,NA,NA,5, 7, 9, 8,NA,NA,NA,NA,8),var2=c(23,NA,NA, 45,NA,NA,67, 87, NA,NA,NA,NA, 22, NA,NA,NA,NA,15, 90, 19, 80,NA,NA,NA,NA, 34))

这里,var 1和var 2的数据仅在一个时间点输入,在下一个时间点,它仅作为NA输入。根据第一个变量,即id -我需要将var 1和var 2的NA值替换为第一时间点的值,即它首先出现。我希望输出像这样。
有人能指出做这件事的最佳方法吗?

ztyzrc3y

ztyzrc3y1#

您可以填充这些值(默认情况下,这些值向下,但您可以通过指定方向来更改)。

library(tidyverse)
data1 %>% fill(var1,var2)

相关问题