r - 从一个时间点(中间一个)到更早和更晚的时间点填充缺失值
问题描述
id <- rep(seq(1, 5, by=1), 4)
code <- rep(c(NA, "abcd11", NA, NA), each=5)
time <- rep(c("baseline", "screening", "3M", "6M"), each=5)
my.df <- data.frame(id, code, time)
my.df <- my.df %>%
arrange(my.df$id)
我有一个与上面的示例相似的数据集,其中每个参与者都有一个关联的 id,但也有一个代码(带有字母和数字的分类变量)。
但是,该代码仅在一个特定时间点(筛选)出现。
此外,一些参与者有不同数量的时间点,因为他们已经退出。
我想在所有时间点重复参与者的代码。
解决方案
尝试使用这种tidyverse
方法fill()
:
library(tidyverse)
#Data
id<-rep(seq(1,5, by = 1),4)
code <- rep(c(NA,"abcd11", NA, NA),each = 5)
time<-rep(c("baseline","screening", "3M", "6M"),each = 5)
my.df<-data.frame(id, code, time,stringsAsFactors = F)
#Fill
my.df <- my.df %>% fill(code,.direction = 'downup')
输出:
id code time
1 1 abcd11 baseline
2 2 abcd11 baseline
3 3 abcd11 baseline
4 4 abcd11 baseline
5 5 abcd11 baseline
6 1 abcd11 screening
7 2 abcd11 screening
8 3 abcd11 screening
9 4 abcd11 screening
10 5 abcd11 screening
11 1 abcd11 3M
12 2 abcd11 3M
13 3 abcd11 3M
14 4 abcd11 3M
15 5 abcd11 3M
16 1 abcd11 6M
17 2 abcd11 6M
18 3 abcd11 6M
19 4 abcd11 6M
20 5 abcd11 6M
推荐阅读
- xslt-3.0 - 避免 XSLT 中的循环键定义
- r - 对数据子集执行功能
- android - Android API 28 使用什么 SQLite 版本,历史上何时更新?
- angularjs - AngularJS:使用多个控制器的异步数据初始化服务
- c - 错误:取消引用指向不完整类型“struct student”root->next->student_number = 17 的指针;
- php - 无法使用 php 和 sqlite db 从表中获取数据
- javascript - 使用 GLTFLoader 加载 gltf 文件时出错:RangeError: Invalid typed array length: 4
- python - 使用 Python 库生成有向图 任何 Python 库
- reactjs - Firebase - Facebook 身份验证
- c++ - std::string 导致内存泄漏