Как насчет этого?
df2$FakeDate <- df2$Date[ findInterval(df1$Date, df2$Date) ]
df2
# X1 X2 Key Date FakeDate
# 1 4 3 A 2000-01-01 2000-01-01
# 2 4 0 B 2000-02-01 2000-02-01
# 3 2 5 A 2000-03-01 2000-02-01
# 4 3 1 B 2000-04-01 2000-04-01
# 5 2 5 A 2000-05-01 2000-05-01
# 6 5 3 B 2000-06-01 2000-05-01
# 7 5 0 A 2000-07-01 2000-07-01
# 8 3 0 B 2000-08-01 2000-08-01
# 9 4 5 A 2000-09-01 2000-09-01
# 10 4 0 B 2000-10-01 2000-10-01
df2$Date <- NULL # o/w merge will complain about 'Date' in both
merge(df1, df2, by.x=c("Key","Date"), by.y=c("Key","FakeDate"))
# Key Date X1.x X2.x X1.y X2.y
# 1 A 2000-01-01 0 5 4 3
# 2 A 2000-02-01 4 0 2 5
# 3 A 2000-05-01 4 1 2 5
# 4 A 2000-07-01 2 0 5 0
# 5 A 2000-09-01 0 3 4 5
# 6 B 2000-02-01 0 4 4 0
# 7 B 2000-04-01 1 5 3 1
# 8 B 2000-05-01 5 2 5 3
# 9 B 2000-08-01 3 5 3 0
# 10 B 2000-10-01 4 2 4 0
У меня была похожая проблема, и эта публикация помогла мне решить мою проблему. Я забыл установить Сервисы Google Play.
Если вы используете его на своем эмуляторе, убедитесь, что у вас включены службы Google Play в
Tools -> Android -> SDK Manager -> SDK Tools -> Google play services
После установки перезагрузите Android Studio и ваш эмулятор
Мне пришлось понизить com.google.gms: google-services: с 4.1.0 до 4.0.0, и это сработало для меня. Этот пост здесь помог в этом
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:4.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}