Вы должны сделать это так, как вы описали. MongoDB является нереляционной базой данных и не поддерживает объединения.
До сих пор неясно, в чем конкретно проблема, однако, возможно, это поможет.
Данные содержат даты, правильно отформатированные, с помощью format
можно указать номер недели для данной даты.
df15 <-fromJSON(json3)
df <- df15$Data$PriceHistory # (json3 as in your function)
df$week <- as.integer(format(as.Date(df$DataDate), '%V'))
С сегодняшнего дня становится проще получать еженедельные данные
# For Example NAV and Discount weekly means, maxs, mins
means <- aggregate(df[, c("NAVData", "DiscountData")], list(df$week), mean)
maxs <- aggregate(df[, c("NAVData", "DiscountData")], list(df$week), max)
mins <- aggregate(df[, c("NAVData", "DiscountData")], list(df$week), min)
setNames(merge(merge(means, mins, by = 'Group.1'), maxs, by = 'Group.1'),
c('week','NAVMean','DiscountMean','NAVMins','DiscountMins','NAVMaxs','DiscountMaxs'))
# week NAVMean DiscountMean NAVMins DiscountMins NAVMaxs DiscountMaxs
# 1 1 10.5350 8.2575 10.49 6.20 10.57 9.89
# 2 2 10.5080 9.8980 10.46 8.71 10.56 11.33
# 3 3 10.6540 7.4200 10.45 4.75 10.95 10.24
# ...
# 50 50 10.5300 8.3500 10.49 5.34 10.59 9.92
# 51 51 10.4340 5.5520 10.38 4.39 10.48 6.56
# 52 52 10.4825 6.7975 10.48 6.20 10.49 7.82
.