我对r和论坛很陌生——我搜索了论坛,但找不到关于如何做到这一点的简单描述。
我试图通过覆盖A中某些标准与B匹配的记录来组合A和B这两个数据集。以下是数据示例:
A:
date farmID ip lm
146 F10 10 0.5
147 F10 11 0.6
148 F10 6 0.6
149 F10 8 0.1
146 F11 10 0.4
147 F11 12 0.3
148 F11 4 0.5
149 F11 5 0.3
B:
farmID start end ip lm
F10 140 145 3 0.4
F10 140 147 15 0.8
F11 145 146 13 0.9
F11 146 149 20 0.7
我需要做以下操作:如果日期介于开始和结束之间(不包括结束(,并且farmID相同,则覆盖B 中的列ip和lm
结果是:
date farmID ip lm
146 F10 15 0.8 <-- this one changed
147 F10 15 0.8 <-- this one changed
148 F10 6 0.6
149 F10 8 0.1
146 F11 20 0.7 <-- this one changed
147 F11 20 0.7 <-- this one changed
148 F11 20 0.7 <-- this one changed
149 F11 20 0.7 <-- this one changed
我首先尝试了嵌套循环来遍历这两个表,但我在A中有大约800000条记录,所以这太慢了。
for (i in seq(1:nrow(A))){
for (j in seq(1:nrow(B))){
if (B$farmID[j] == A$farmID[i]){
if (B$start[j] <= A$date[i] | A$date[i] > B$end[j]){
A$lm[i] <- B$lm[j]
A$ip[i] <- B$ip[j]
}
}
}
我知道这不是r的正确方法,我应该使用矢量化函数。
我发现这篇文章非常相似,没有farmID的第二个标准,所以我想我可以用data.table-替换R 中的嵌套循环
有人能告诉我一个合理的表演方式吗?
编辑
这花了一段时间才缩小到有用的尺寸。我试图选择有代表性的数据。
dput(B(
structure(list(SiteID = c("FS0013", "FS0013", "FS0056", "FS0068",
"FS0068", "FS0206", "FS0206", "FS0407", "FS0408", "FS0408", "FS0694",
"FS0695", "FS0695", "FS0695", "FS1033", "FS1036", "FS1039", "FS1039",
"FS1335", "FS1335"), FromDate = c(42401L, 42758L, 42443L, 42969L,
43166L, 43782L, 43860L, 43119L, 42642L, 43228L, 42852L, 42527L,
42895L, 43918L, 43848L, 42711L, 42569L, 43255L, 43954L, 43968L
), ToDate = c(42766L, 43123L, 42808L, 43334L, 43531L, 44147L,
44225L, 43484L, 43007L, 43593L, 43217L, 42892L, 43260L, 44283L,
44213L, 43076L, 42934L, 43620L, 44319L, 44333L), LFF_On = c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 0L,
1L, 1L, 1L), ip = c(4L, 4L, 1L, 3L, 3L, 5L, 5L, NA, NA, 6L, 9L,
NA, NA, 1L, 5L, NA, NA, 6L, 9L, 9L), lm = c(NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 2L)), class = "data.frame", row.names = c(NA,
-20L))
dput(A(
structure(list(date = c(42395L, 42395L, 42395L, 42395L, 42395L,
42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42396L,
42396L, 42396L, 42396L, 42396L, 42396L, 42396L, 42396L, 42396L,
42396L, 42396L, 42396L, 42397L, 42397L, 42397L, 42397L, 42397L,
42397L, 42397L, 42397L, 42397L, 42397L, 42397L, 42397L, 42398L,
42398L, 42398L, 42398L, 42398L, 42398L, 42398L, 42398L, 42398L,
42398L, 42398L, 42398L, 42399L, 42399L, 42399L, 42399L, 42399L,
42399L, 42399L, 42399L, 42399L, 42399L, 42399L, 42399L, 42400L,
42400L, 42400L, 42400L, 42400L, 42400L, 42400L, 42400L, 42400L,
42400L, 42400L, 42400L, 42401L, 42401L, 42401L, 42401L, 42401L,
42401L, 42401L, 42401L, 42401L, 42401L, 42401L, 42401L, 42402L,
42402L, 42402L, 42402L, 42402L, 42402L, 42402L, 42402L, 42402L,
42402L, 42402L, 42402L, 42403L, 42403L, 42403L, 42403L, 42403L,
42403L, 42403L, 42403L, 42403L, 42403L, 42403L, 42403L, 42404L,
42404L, 42404L, 42404L, 42404L, 42404L, 42404L, 42404L, 42404L,
42404L, 42404L, 42404L, 42405L, 42405L, 42405L, 42405L, 42405L,
42405L, 42405L, 42405L, 42405L, 42405L, 42405L, 42405L, 42406L,
42406L, 42406L, 42406L, 42406L, 42406L, 42406L, 42406L, 42406L,
42406L, 42406L, 42406L, 42407L, 42407L, 42407L, 42407L, 42407L,
42407L, 42407L, 42407L, 42407L, 42407L, 42407L, 42407L, 42395L,
42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L,
42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L,
42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L,
42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L,
42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L,
42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L,
42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L, 42395L,
42395L, 42395L, 42395L, 42643L, 42643L, 42643L, 42643L, 42643L,
42643L, 42643L, 42643L, 42643L, 42643L, 42643L, 42643L, 42800L,
42800L, 42800L, 42800L, 42800L, 42800L, 42800L, 42800L, 42800L,
42800L, 42800L, 42800L, 42801L, 42801L, 42801L, 42801L, 42801L,
42801L, 42801L, 42801L, 42801L, 42801L, 42801L, 42801L, 42802L,
42802L, 42802L, 42802L, 42802L, 42802L, 42802L, 42802L, 42802L,
42802L, 42802L, 42802L, 42803L, 42803L, 42803L, 42803L, 42803L,
42803L, 42803L, 42803L, 42803L, 42803L, 42803L, 42803L, 42804L,
42804L, 42804L, 42804L, 42804L, 42804L, 42804L, 42804L, 42804L,
42804L, 42804L, 42804L, 42805L, 42805L, 42805L, 42805L, 42805L,
42805L, 42805L, 42805L, 42805L, 42805L, 42805L, 42805L, 42806L,
42806L, 42806L, 42806L, 42806L, 42806L, 42806L, 42806L, 42806L,
42806L, 42806L, 42806L, 42807L, 42807L, 42807L, 42807L, 42807L,
42807L, 42807L, 42807L, 42807L, 42807L, 42807L, 42807L, 42808L,
42808L, 42808L, 42808L, 42808L, 42808L, 42808L, 42808L, 42808L,
42808L, 42808L, 42808L, 42809L, 42809L, 42809L, 42809L, 42809L,
42809L, 42809L, 42809L, 42809L, 42809L, 42809L, 42809L, 42810L,
42810L, 42810L, 42810L, 42810L, 42810L, 42810L, 42810L, 42810L,
42810L, 42810L, 42810L, 42811L, 42811L, 42811L, 42811L, 42811L,
42811L, 42811L, 42811L, 42811L, 42811L, 42811L, 42811L, 42894L,
42894L, 42894L, 42894L, 42894L, 42894L, 42894L, 42894L, 42894L,
42894L, 42894L, 42894L, 42895L, 42895L, 42895L, 42895L, 42895L,
42895L, 42895L, 42895L, 42895L, 42895L, 42895L, 42895L, 43160L,
43160L, 43160L, 43160L, 43160L, 43160L, 43160L, 43160L, 43160L,
43160L, 43160L, 43160L, 43161L, 43161L, 43161L, 43161L, 43161L,
43161L, 43161L, 43161L, 43161L, 43161L, 43161L, 43161L, 43162L,
43162L, 43162L, 43162L, 43162L, 43162L, 43162L, 43162L, 43162L,
43162L, 43162L, 43162L, 43163L, 43163L, 43163L, 43163L, 43163L,
43163L, 43163L, 43163L, 43163L, 43163L, 43163L, 43163L, 43164L,
43164L, 43164L, 43164L, 43164L, 43164L, 43164L, 43164L, 43164L,
43164L, 43164L, 43164L, 43165L, 43165L, 43165L, 43165L, 43165L,
43165L, 43165L, 43165L, 43165L, 43165L, 43165L, 43165L, 43166L,
43166L, 43166L, 43166L, 43166L, 43166L, 43166L, 43166L, 43166L,
43166L, 43166L, 43166L, 43167L, 43167L, 43167L, 43167L, 43167L,
43167L, 43167L, 43167L, 43167L, 43167L, 43167L, 43167L, 43168L,
43168L, 43168L, 43168L, 43168L, 43168L, 43168L, 43168L, 43168L,
43168L, 43168L, 43168L, 43169L, 43169L, 43169L, 43169L, 43169L,
43169L, 43169L, 43169L, 43169L, 43169L, 43169L, 43169L, 43618L,
43618L, 43618L, 43618L, 43618L, 43618L, 43618L, 43618L, 43618L,
43618L, 43618L, 43618L, 43619L, 43619L, 43619L, 43619L, 43619L,
43619L, 43619L, 43619L, 43619L, 43619L, 43619L, 43619L, 43620L,
43620L, 43620L, 43620L, 43620L, 43620L, 43620L, 43620L, 43620L,
43620L, 43620L, 43620L, 43851L, 43851L, 43851L, 43851L, 43851L,
43851L, 43851L, 43851L, 43851L, 43851L, 43851L, 43851L, 43852L,
43852L, 43852L, 43852L, 43852L, 43852L, 43852L, 43852L, 43852L,
43852L, 43852L, 43852L, 43853L, 43853L, 43853L, 43853L, 43853L,
43853L, 43853L, 43853L, 43853L, 43853L, 43853L, 43853L, 43854L,
43854L, 43854L, 43854L, 43854L, 43854L, 43854L, 43854L, 43854L,
43854L, 43854L, 43854L, 43855L, 43855L, 43855L, 43855L, 43855L,
43855L, 43855L, 43855L, 43855L, 43855L, 43855L, 43855L, 43856L,
43856L, 43856L, 43856L, 43856L, 43856L, 43856L, 43856L, 43856L,
43856L, 43856L, 43856L, 43857L, 43857L, 43857L, 43857L, 43857L,
43857L, 43857L, 43857L, 43857L, 43857L, 43857L, 43857L, 43858L,
43858L, 43858L, 43858L, 43858L, 43858L, 43858L, 43858L, 43858L,
43858L, 43858L, 43858L, 43859L, 43859L, 43859L, 43859L, 43859L,
43859L, 43859L, 43859L, 43859L, 43859L, 43859L, 43859L, 43860L,
43860L, 43860L, 43860L, 43860L, 43860L, 43860L, 43860L, 43860L,
43860L, 43860L, 43860L, 43861L, 43861L, 43861L, 43861L, 43861L,
43861L, 43861L, 43861L, 43861L, 43861L, 43861L, 43861L, 43862L,
43862L, 43862L, 43862L, 43862L, 43862L, 43862L, 43862L, 43862L,
43862L, 43862L, 43862L, 43863L, 43863L, 43863L, 43863L, 43863L,
43863L, 43863L, 43863L, 43863L, 43863L, 43863L, 43863L, 43864L,
43864L, 43864L, 43864L, 43864L, 43864L, 43864L, 43864L, 43864L,
43864L, 43864L, 43864L, 43865L, 43865L, 43865L, 43865L, 43865L,
43865L, 43865L, 43865L, 43865L, 43865L, 43865L, 43865L, 43866L,
43866L, 43866L, 43866L, 43866L, 43866L, 43866L, 43866L, 43866L,
43866L, 43866L, 43866L, 43867L, 43867L, 43867L, 43867L, 43867L,
43867L, 43867L, 43867L, 43867L, 43867L, 43867L, 43867L, 43868L,
43868L, 43868L, 43868L, 43868L, 43868L, 43868L, 43868L, 43868L,
43868L, 43868L, 43868L, 43869L, 43869L, 43869L, 43869L, 43869L,
43869L, 43869L, 43869L, 43869L, 43869L, 43869L, 43869L), SiteID = c("FS0013",
"FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695",
"FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068",
"FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036",
"FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407",
"FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335",
"FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694",
"FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056",
"FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033",
"FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206",
"FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039",
"FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408",
"FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013",
"FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695",
"FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068",
"FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036",
"FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407",
"FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335",
"FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694",
"FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056",
"FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033",
"FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206",
"FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039",
"FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408",
"FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013",
"FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695",
"FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068",
"FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036",
"FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407",
"FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335",
"FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694",
"FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056",
"FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033",
"FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206",
"FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039",
"FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408",
"FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013",
"FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695",
"FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068",
"FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036",
"FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407",
"FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335",
"FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694",
"FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056",
"FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033",
"FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206",
"FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039",
"FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408",
"FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013",
"FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695",
"FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068",
"FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036",
"FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407",
"FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335",
"FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694",
"FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056",
"FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033",
"FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206",
"FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039",
"FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408",
"FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013",
"FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695",
"FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068",
"FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036",
"FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407",
"FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335",
"FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694",
"FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056",
"FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033",
"FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206",
"FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039",
"FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408",
"FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013",
"FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695",
"FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068",
"FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036",
"FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407",
"FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335",
"FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694",
"FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056",
"FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033",
"FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206",
"FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039",
"FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408",
"FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013",
"FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695",
"FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068",
"FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036",
"FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407",
"FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335",
"FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694",
"FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056",
"FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033",
"FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206",
"FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039",
"FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408",
"FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013",
"FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695",
"FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068",
"FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036",
"FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407",
"FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335",
"FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694",
"FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056",
"FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033",
"FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068", "FS0206",
"FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036", "FS1039",
"FS1335", "FS0013", "FS0056", "FS0068", "FS0206", "FS0407", "FS0408",
"FS0694", "FS0695", "FS1033", "FS1036", "FS1039", "FS1335", "FS0013",
"FS0056", "FS0068", "FS0206", "FS0407", "FS0408", "FS0694", "FS0695",
"FS1033", "FS1036", "FS1039", "FS1335", "FS0013", "FS0056", "FS0068",
"FS0206", "FS0407", "FS0408", "FS0694", "FS0695", "FS1033", "FS1036",
"FS1039", "FS1335"), LFF_On = c(1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L,
1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L,
1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 1L,
0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 1L,
0L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 1L,
1L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 1L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 1L,
1L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 0L,
0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 0L,
1L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 0L,
1L, 0L, 1L, 1L, 1L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L,
1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 1L,
0L, 0L, 1L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 1L,
0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 1L,
0L, 0L, 1L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 1L, 1L, 1L, 0L, 0L,
0L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 1L, 1L,
1L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 1L,
0L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 1L,
0L, 1L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 1L,
0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 1L, 1L,
0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L,
0L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L,
0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 1L,
0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 1L,
1L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 1L,
1L, 1L, 1L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 0L, 1L, 0L, 0L, 1L, 1L,
0L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 1L, 0L,
1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 1L,
1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 1L, 0L, 0L,
1L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 0L,
0L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L,
0L, 0L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 1L, 1L, 1L, 0L, 1L, 1L,
0L, 0L, 0L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 0L, 1L, 1L,
1L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L,
1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L,
1L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 1L,
1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 1L, 0L, 0L,
1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L,
1L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 1L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, 0L,
1L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L,
1L, 0L, 0L, 0L), ip = c(9L, 9L, 5L, 15L, 10L, 13L, 7L, 8L, 6L,
8L, 5L, 10L, 15L, 5L, 13L, 15L, 11L, 9L, 12L, 14L, 7L, 6L, 5L,
14L, 11L, 13L, 8L, 8L, 13L, 6L, 15L, 12L, 5L, 10L, 10L, 12L,
10L, 7L, 6L, 11L, 14L, 10L, 15L, 7L, 8L, 5L, 5L, 9L, 13L, 15L,
7L, 9L, 12L, 5L, 11L, 5L, 8L, 7L, 9L, 7L, 6L, 7L, 13L, 5L, 14L,
14L, 11L, 12L, 15L, 13L, 14L, 7L, 7L, 13L, 14L, 13L, 9L, 15L,
10L, 13L, 5L, 10L, 8L, 11L, 8L, 7L, 7L, 12L, 11L, 11L, 8L, 10L,
14L, 9L, 9L, 10L, 12L, 15L, 13L, 10L, 8L, 9L, 15L, 12L, 12L,
5L, 5L, 10L, 8L, 6L, 13L, 13L, 6L, 10L, 5L, 11L, 9L, 9L, 9L,
14L, 6L, 6L, 6L, 9L, 13L, 8L, 9L, 10L, 7L, 14L, 12L, 12L, 10L,
11L, 8L, 7L, 8L, 12L, 11L, 7L, 8L, 12L, 10L, 11L, 12L, 5L, 14L,
7L, 10L, 7L, 11L, 9L, 15L, 13L, 7L, 5L, 10L, 6L, 11L, 11L, 10L,
14L, 12L, 10L, 8L, 8L, 10L, 5L, 13L, 5L, 6L, 15L, 13L, 13L, 9L,
8L, 6L, 13L, 13L, 14L, 11L, 8L, 5L, 10L, 8L, 12L, 12L, 6L, 15L,
13L, 5L, 12L, 7L, 10L, 9L, 11L, 9L, 11L, 11L, 5L, 10L, 5L, 14L,
5L, 12L, 8L, 12L, 5L, 9L, 9L, 12L, 9L, 14L, 9L, 7L, 7L, 12L,
10L, 9L, 11L, 9L, 9L, 11L, 9L, 6L, 6L, 5L, 13L, 11L, 15L, 7L,
10L, 13L, 8L, 5L, 9L, 6L, 13L, 11L, 8L, 9L, 5L, 11L, 14L, 6L,
6L, 9L, 12L, 7L, 6L, 6L, 8L, 13L, 6L, 13L, 6L, 6L, 14L, 5L, 12L,
5L, 14L, 9L, 13L, 7L, 10L, 13L, 6L, 11L, 12L, 7L, 5L, 13L, 15L,
15L, 10L, 14L, 15L, 14L, 9L, 9L, 5L, 10L, 10L, 10L, 10L, 12L,
14L, 12L, 10L, 15L, 15L, 12L, 15L, 6L, 12L, 10L, 13L, 14L, 8L,
5L, 12L, 9L, 5L, 8L, 14L, 9L, 7L, 6L, 15L, 10L, 8L, 12L, 6L,
13L, 15L, 10L, 13L, 5L, 10L, 9L, 9L, 12L, 10L, 7L, 9L, 11L, 7L,
11L, 9L, 5L, 12L, 14L, 14L, 15L, 8L, 14L, 9L, 7L, 11L, 9L, 12L,
8L, 6L, 9L, 14L, 13L, 12L, 13L, 11L, 8L, 5L, 5L, 9L, 5L, 6L,
14L, 14L, 12L, 10L, 7L, 15L, 8L, 5L, 12L, 15L, 14L, 5L, 7L, 7L,
11L, 6L, 15L, 14L, 7L, 15L, 10L, 13L, 11L, 11L, 14L, 10L, 12L,
8L, 8L, 8L, 8L, 14L, 7L, 9L, 10L, 11L, 10L, 8L, 10L, 14L, 14L,
13L, 11L, 7L, 8L, 10L, 8L, 9L, 12L, 11L, 11L, 14L, 13L, 9L, 11L,
7L, 7L, 9L, 13L, 6L, 10L, 9L, 11L, 8L, 7L, 7L, 11L, 12L, 8L,
7L, 8L, 13L, 14L, 6L, 10L, 9L, 10L, 12L, 5L, 15L, 14L, 6L, 14L,
12L, 13L, 9L, 7L, 9L, 11L, 14L, 8L, 10L, 8L, 10L, 13L, 13L, 13L,
6L, 8L, 5L, 5L, 6L, 6L, 11L, 7L, 6L, 9L, 8L, 5L, 6L, 7L, 9L,
5L, 9L, 12L, 10L, 11L, 10L, 6L, 5L, 11L, 9L, 9L, 10L, 7L, 10L,
13L, 8L, 7L, 8L, 15L, 8L, 13L, 11L, 12L, 14L, 11L, 6L, 9L, 14L,
15L, 9L, 14L, 15L, 10L, 8L, 11L, 13L, 6L, 6L, 9L, 10L, 6L, 7L,
15L, 14L, 8L, 10L, 9L, 12L, 5L, 12L, 10L, 10L, 14L, 10L, 8L,
14L, 7L, 10L, 12L, 12L, 15L, 14L, 10L, 9L, 14L, 10L, 7L, 9L,
11L, 7L, 14L, 10L, 10L, 13L, 9L, 6L, 13L, 7L, 13L, 6L, 10L, 10L,
14L, 9L, 11L, 14L, 6L, 6L, 12L, 8L, 6L, 6L, 5L, 6L, 15L, 9L,
12L, 14L, 14L, 9L, 8L, 10L, 10L, 11L, 12L, 15L, 6L, 5L, 13L,
6L, 7L, 7L, 11L, 11L, 7L, 15L, 9L, 6L, 10L, 14L, 6L, 5L, 15L,
10L, 13L, 13L, 9L, 11L, 6L, 14L, 14L, 9L, 5L, 8L, 11L, 13L, 8L,
11L, 5L, 7L, 11L, 8L, 13L, 11L, 8L, 14L, 15L, 13L, 6L, 8L, 9L,
14L, 8L, 14L, 13L, 10L, 5L, 5L, 5L, 10L, 9L, 14L, 8L, 6L, 14L,
8L, 10L, 11L, 12L, 13L, 15L, 5L, 11L, 14L, 14L, 6L, 8L, 9L, 15L,
10L, 6L, 5L, 5L, 9L, 10L, 9L, 15L, 8L, 10L, 5L, 6L, 5L, 13L,
8L, 5L, 14L, 14L, 10L, 8L, 11L, 15L, 15L, 13L, 13L, 14L, 9L,
11L, 8L, 13L, 9L, 13L, 9L, 8L, 5L, 7L, 13L, 7L, 5L, 11L, 15L,
8L, 13L, 6L, 9L, 5L, 6L, 15L, 8L, 15L, 11L, 6L, 6L, 10L, 12L,
10L, 9L, 10L, 5L, 10L, 6L, 12L, 14L, 12L, 6L, 9L, 14L, 13L, 12L,
12L, 12L, 7L, 12L, 9L, 14L, 6L, 6L, 9L, 12L, 14L, 10L, 8L, 9L,
9L, 7L, 11L, 5L, 12L, 14L, 11L, 15L, 12L, 11L, 5L, 6L, 10L, 9L,
7L, 12L, 13L, 11L, 9L, 6L, 6L, 14L, 5L, 8L, 11L, 7L, 12L, 8L,
11L, 12L, 10L, 6L, 13L, 15L, 8L, 12L, 13L, 15L, 13L, 6L, 6L,
11L, 14L, 13L, 13L, 6L, 6L, 14L, 14L, 11L), lm = c(3L, 4L, 1L,
3L, 4L, 2L, 3L, 1L, 1L, 4L, 2L, 3L, 3L, 1L, 2L, 3L, 1L, 4L, 4L,
1L, 3L, 1L, 4L, 3L, 1L, 4L, 3L, 2L, 4L, 4L, 3L, 2L, 2L, 2L, 2L,
3L, 2L, 4L, 1L, 1L, 2L, 4L, 2L, 2L, 1L, 1L, 1L, 4L, 4L, 4L, 3L,
4L, 1L, 2L, 1L, 4L, 2L, 3L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 4L, 1L,
2L, 4L, 1L, 2L, 3L, 3L, 4L, 4L, 4L, 2L, 3L, 4L, 4L, 3L, 1L, 4L,
3L, 3L, 4L, 1L, 4L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 4L, 4L,
3L, 2L, 4L, 2L, 4L, 1L, 1L, 2L, 4L, 1L, 1L, 4L, 3L, 2L, 4L, 3L,
4L, 2L, 4L, 3L, 3L, 4L, 2L, 4L, 1L, 1L, 2L, 1L, 2L, 3L, 3L, 1L,
4L, 3L, 3L, 2L, 2L, 4L, 4L, 4L, 4L, 4L, 2L, 4L, 1L, 3L, 2L, 3L,
1L, 3L, 3L, 2L, 4L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 3L, 1L, 3L, 3L,
2L, 3L, 1L, 3L, 4L, 4L, 2L, 3L, 2L, 2L, 3L, 1L, 3L, 2L, 4L, 1L,
4L, 2L, 4L, 1L, 3L, 2L, 1L, 4L, 3L, 1L, 3L, 4L, 4L, 1L, 3L, 2L,
1L, 3L, 4L, 1L, 1L, 4L, 1L, 4L, 4L, 1L, 2L, 2L, 3L, 3L, 3L, 1L,
2L, 4L, 2L, 4L, 1L, 2L, 3L, 4L, 4L, 4L, 1L, 2L, 3L, 4L, 1L, 3L,
1L, 4L, 2L, 3L, 4L, 4L, 3L, 3L, 4L, 1L, 2L, 1L, 3L, 2L, 4L, 3L,
4L, 1L, 2L, 2L, 4L, 1L, 4L, 3L, 3L, 4L, 3L, 2L, 4L, 4L, 4L, 1L,
1L, 3L, 1L, 2L, 3L, 2L, 2L, 3L, 4L, 4L, 1L, 2L, 4L, 3L, 1L, 3L,
3L, 2L, 4L, 3L, 1L, 1L, 2L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 1L,
2L, 1L, 2L, 4L, 2L, 4L, 4L, 2L, 1L, 3L, 4L, 3L, 1L, 4L, 4L, 4L,
3L, 1L, 4L, 1L, 3L, 2L, 3L, 3L, 2L, 4L, 2L, 2L, 3L, 3L, 3L, 4L,
4L, 4L, 4L, 2L, 4L, 3L, 1L, 4L, 2L, 3L, 3L, 3L, 2L, 1L, 1L, 1L,
3L, 4L, 4L, 2L, 2L, 2L, 2L, 4L, 3L, 2L, 3L, 4L, 1L, 2L, 1L, 3L,
4L, 4L, 3L, 2L, 3L, 4L, 3L, 2L, 4L, 1L, 1L, 2L, 3L, 3L, 3L, 1L,
2L, 3L, 3L, 4L, 1L, 2L, 3L, 4L, 1L, 4L, 4L, 3L, 3L, 2L, 4L, 4L,
1L, 2L, 4L, 3L, 2L, 1L, 3L, 4L, 2L, 1L, 3L, 4L, 3L, 4L, 1L, 2L,
2L, 1L, 3L, 3L, 1L, 4L, 4L, 2L, 4L, 1L, 2L, 2L, 2L, 2L, 1L, 4L,
4L, 1L, 3L, 3L, 2L, 3L, 2L, 3L, 1L, 3L, 2L, 2L, 4L, 1L, 3L, 1L,
3L, 4L, 3L, 4L, 2L, 3L, 4L, 3L, 2L, 3L, 1L, 1L, 3L, 1L, 1L, 3L,
2L, 1L, 2L, 4L, 4L, 1L, 2L, 3L, 3L, 2L, 4L, 2L, 3L, 4L, 2L, 4L,
4L, 4L, 3L, 2L, 4L, 3L, 3L, 2L, 1L, 2L, 2L, 4L, 1L, 4L, 2L, 4L,
4L, 4L, 1L, 2L, 4L, 1L, 2L, 3L, 2L, 2L, 2L, 3L, 4L, 2L, 3L, 1L,
1L, 2L, 3L, 2L, 4L, 2L, 2L, 4L, 1L, 2L, 3L, 2L, 1L, 1L, 2L, 2L,
2L, 1L, 2L, 1L, 3L, 3L, 3L, 3L, 2L, 4L, 3L, 4L, 3L, 3L, 2L, 1L,
2L, 1L, 2L, 2L, 4L, 3L, 2L, 2L, 1L, 1L, 1L, 2L, 4L, 1L, 2L, 3L,
2L, 4L, 4L, 2L, 2L, 3L, 2L, 3L, 2L, 2L, 1L, 3L, 4L, 4L, 1L, 2L,
4L, 2L, 1L, 1L, 4L, 3L, 1L, 4L, 3L, 1L, 4L, 1L, 2L, 3L, 2L, 4L,
4L, 4L, 2L, 3L, 1L, 4L, 1L, 1L, 1L, 1L, 3L, 3L, 2L, 3L, 4L, 1L,
1L, 1L, 2L, 4L, 4L, 1L, 2L, 3L, 4L, 2L, 1L, 2L, 1L, 3L, 4L, 1L,
4L, 2L, 4L, 3L, 1L, 1L, 2L, 3L, 1L, 1L, 1L, 2L, 3L, 2L, 4L, 4L,
3L, 1L, 1L, 3L, 3L, 4L, 3L, 2L, 2L, 3L, 2L, 4L, 3L, 4L, 1L, 2L,
1L, 3L, 2L, 3L, 2L, 3L, 4L, 3L, 2L, 3L, 3L, 2L, 3L, 3L, 4L, 1L,
3L, 1L, 2L, 3L, 3L, 1L, 3L, 2L, 3L, 1L, 4L, 1L, 4L, 2L, 1L, 4L,
2L, 2L, 1L, 4L, 3L, 2L, 3L, 4L, 3L, 4L, 2L, 3L, 2L, 1L, 2L, 2L,
3L, 4L, 3L, 2L, 4L, 4L, 2L, 2L, 1L, 4L, 1L, 3L, 4L, 2L, 2L, 1L,
4L, 1L, 3L, 2L, 4L, 1L, 1L, 3L, 3L, 3L, 1L, 2L, 2L, 2L, 1L, 3L,
4L, 1L, 2L, 1L, 4L, 1L, 2L, 4L, 1L, 4L, 1L, 3L, 1L, 1L, 4L, 2L,
3L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 3L, 2L, 1L, 4L, 2L, 3L, 4L, 1L,
4L, 4L, 2L, 1L, 4L, 1L, 3L, 2L, 4L, 1L, 4L, 3L, 4L, 4L, 4L, 2L,
1L, 2L, 2L, 1L, 1L, 3L, 1L, 4L, 3L)), class = "data.frame", row.names = c(NA,
-780L))
实现这一点的一种方法是:;范围联接";(又称"非等"联接(。data.table
、fuzzyjoin
和SQL通常都支持这一点(可以使用sqldf
在本机R中完成(。
数据表
library(data.table)
setDT(A)
setDT(B)
B[A, on = .(farmID == farmID, start <= date, end >= date)
][, ip := fcoalesce(ip, i.ip)
][, lm := fcoalesce(lm, i.lm)
][, c("i.ip", "i.lm") := NULL ][]
# farmID start end ip lm
# 1: F10 146 146 15 0.8
# 2: F10 147 147 15 0.8
# 3: F10 148 148 6 0.6
# 4: F10 149 149 8 0.1
# 5: F11 146 146 13 0.9
# 6: F11 146 146 20 0.7
# 7: F11 147 147 20 0.7
# 8: F11 148 148 20 0.7
# 9: F11 149 149 20 0.7
模糊联接
(从data.frame
s开始,而不是data.table
s(
library(fuzzyjoin)
out <- fuzzy_left_join(
A, B,
by = c(farmID = "farmID", date = "start", date = "end"),
match_fun = list(`==`, `>=`, `<=`)
)
within(out, {
farmID = farmID.x
ip = ifelse(is.na(ip.y), ip.x, ip.y)
lm = ifelse(is.na(lm.y), lm.x, lm.y)
# remove side-specific versions of variables
farmID.x <- farmID.y <- ip.x <- ip.y <- lm.x <- lm.y <- NULL
# remove B$start/$end, not needed
start <- end <- NULL
})
# date lm ip farmID
# 1 146 0.8 15 F10
# 2 147 0.8 15 F10
# 3 148 0.6 6 F10
# 4 149 0.1 8 F10
# 5 146 0.9 13 F11
# 6 146 0.7 20 F11
# 7 147 0.7 20 F11
# 8 148 0.7 20 F11
# 9 149 0.7 20 F11
SQL
如果数据在加载之前已经在SQL DBMS中,那么最好让SQL服务器自己执行此步骤。。。如果没有,您可以使用sqldf
为您做这件事。
sqldf::sqldf(
"select A.date, A.farmID,
coalesce(B.ip, A.ip) as ip, coalesce(B.lm, A.lm) as lm
from A left join B
on A.farmID = b.farmID
and A.date between B.start and B.end"
)
# date farmID ip lm
# 1 146 F10 15 0.8
# 2 147 F10 15 0.8
# 3 148 F10 6 0.6
# 4 149 F10 8 0.1
# 5 146 F11 13 0.9
# 6 146 F11 20 0.7
# 7 147 F11 20 0.7
# 8 148 F11 20 0.7
# 9 149 F11 20 0.7
我在编辑更大的数据之前制定了这个答案,而是使用这个数据:
A <- structure(list(date = c(146L, 147L, 148L, 149L, 146L, 147L, 148L, 149L), farmID = c("F10", "F10", "F10", "F10", "F11", "F11", "F11", "F11"), ip = c(10L, 11L, 6L, 8L, 10L, 12L, 4L, 5L), lm = c(0.5, 0.6, 0.6, 0.1, 0.4, 0.3, 0.5, 0.3)), row.names = c(NA, -8L), class = "data.frame")
B <- structure(list(farmID = c("F10", "F10", "F11", "F11"), start = c(140L, 140L, 145L, 146L), end = c(145L, 147L, 146L, 149L), ip = c(3L, 15L, 13L, 20L), lm = c(0.4, 0.8, 0.9, 0.7)), row.names = c(NA, -4L), class = "data.frame")