R 根据主题ID填写缺少的值
我有这样一个大型数据集:R 根据主题ID填写缺少的值,r,R,我有这样一个大型数据集: SUB DAY BASE 1 0 . 1 0 . 1 0 . 1 0 . 1 1 3.5 1 1 3.5 1 2 3.5 1 2 3.5 2 0 . 2 0 . 2 0 . 2 1 2.3 2 1 2.3 2 2 2.3
SUB DAY BASE
1 0 .
1 0 .
1 0 .
1 0 .
1 1 3.5
1 1 3.5
1 2 3.5
1 2 3.5
2 0 .
2 0 .
2 0 .
2 1 2.3
2 1 2.3
2 2 2.3
2 2 2.3
...
SUB DAY BASE
1 0 3.5
1 0 3.5
1 0 3.5
1 0 3.5
1 1 3.5
1 1 3.5
1 2 3.5
1 2 3.5
2 0 2.3
2 0 2.3
2 0 2.3
2 1 2.3
2 1 2.3
2 2 2.3
2 2 2.3
...
我想用该SUB的值填充BASE中缺少的值。预期输出应如下所示:
SUB DAY BASE
1 0 .
1 0 .
1 0 .
1 0 .
1 1 3.5
1 1 3.5
1 2 3.5
1 2 3.5
2 0 .
2 0 .
2 0 .
2 1 2.3
2 1 2.3
2 2 2.3
2 2 2.3
...
SUB DAY BASE
1 0 3.5
1 0 3.5
1 0 3.5
1 0 3.5
1 1 3.5
1 1 3.5
1 2 3.5
1 2 3.5
2 0 2.3
2 0 2.3
2 0 2.3
2 1 2.3
2 1 2.3
2 2 2.3
2 2 2.3
...
有人知道如何实现这一点吗?如果缺少的值等于
NA
(很棘手,可能是更好的方法):
dat合并(子集(dat,select=-BASE),唯一(dat[!is.na(dat$BASE),c(“SUB”,“BASE”)),by=“SUB”)
分日基数
1 1 0 3.5
2 1 0 3.5
3 1 0 3.5
4 1 0 3.5
5 1 1 3.5
6 1 1 3.5
7 1 2 3.5
8 1 2 3.5
9 2 0 2.3
10 2 0 2.3
11 2 0 2.3
12 2 1 2.3
13 2 1 2.3
14 2 2 2.3
15 2 2 2.3
您能否提供一个可复制的示例?给定的SUB
值的BASE
值是否总是唯一的?嗨,卡尔,是的,给定SUB值的BASE值总是唯一的。这也可以通过使用dat$BASE!='来处理
。'代码>