我有几个不同长度的观察结果。应该每0.2米深度收集一次观察结果。这通常是这种情况,但有时1,2或更多深度间隔以完全随机的顺序被“遗漏/跳过”。表格具有相同的字段。我需要知道错过了哪个深度,以及在哪个时间。作为一个例子是一个简化的文件;表A(profile,time_UTC,depth_m)。表A有12行,但应该有15行,即0.4米,1.2米和1.4米。时间戳(ms)是不规则的,所以我不能用它们来识别深度差距。
==============
有12行,但应该有15行:
profil time_UTC depth_m
1 V 24871 0.2
2 V 24877 0.6
3 V 24882 0.8
4 V 24887 1
5 V 24898 1.6
6 V 24901 1.8
7 V 24902 2
8 V 24905 2.2
9 V 24907 2.4
10 V 24909 2.6
11 V 24912 2.8
12 V 24915 3
对于我将要阅读的所有df,需要以可操作的方式进行检查。
我需要帮助来编写一个查询,在那里我可以找到缺少的行并添加缺少深度和集成时间的新行。
我为类似问题提供了两个链接,但在R示例中,序列是分类的(我的df不是),另一个是Sql代码。 R identify missing rows from pre-specified sequence How to find missing rows?
感谢您的帮助。
答案 0 :(得分:0)
library(dplyr)
right_join(df, data_frame(depth_m = seq(0.2, 3, by = 0.2)))
#> Joining, by = "depth_m"
#> profil time_UTC depth_m
#> 1 V 24871 0.2
#> 2 <NA> NA 0.4
#> 3 <NA> NA 0.6
#> 4 V 24882 0.8
#> 5 V 24887 1.0
#> 6 <NA> NA 1.2
#> 7 <NA> NA 1.4
#> 8 V 24898 1.6
#> 9 V 24901 1.8
#> 10 V 24902 2.0
#> 11 V 24905 2.2
#> 12 <NA> NA 2.4
#> 13 <NA> NA 2.6
#> 14 <NA> NA 2.8
#> 15 V 24915 3.0