R Обединяване на множество времеви серии с карта-функция

Имам проблем да съединя времеви серии-кадри с данни с карта-функция. Имам 25 кадъра с данни с данни за времеви серии за криптовалута.

ls(pattern="USD")
[1] "ADA.USD"   "BCH.USD"   "BNB.USD"   "BTC.USD"   "BTG.USD"   "DASH.USD"     "DOGE.USD"  "EOS.USD"   "ETC.USD"   "ETH.USD"   "IOT.USD"
[12] "LINK.USD"  "LTC.USD"   "NEO.USD"   "OMG.USD"   "QTUM.USD"  "TRX.USD"   "USDT.USD"  "WAVES.USD" "XEM.USD"   "XLM.USD"   "XMR.USD"
[23] "XRP.USD"   "ZEC.USD"   "ZRX.USD" 

Всеки обект е рамка от данни, която означава криптовалута, изразена в USD. И всеки кадър с данни има 2 клона: дата и затваряне (цена на затваряне). Например: рамката с данни "BTC.USD" означава биткойн в щатски долари:

head(BTC.USD)
# A tibble: 6 x 2
Date       Close
1 2015-12-31  430.
2 2016-01-01  434.
3 2016-01-02  434.
4 2016-01-03  431.
5 2016-01-04  433.

Сега искам да ги обединя в един кадър с данни по дата с карта-функция:

lst1 <- mget(ls(pattern = "USD"))
df <- map(.x = lst1,.f = full_join(by="Date"))

Но не работи:

Error in UseMethod("full_join") : 
no applicable method for 'full_join' applied to an object of class "character"

може ли някой да ми помогне


person TobKel    schedule 22.01.2019    source източник
comment
посочете обекта на данните   -  person JineshEP    schedule 22.01.2019
comment
Какво точно искате да знаете?   -  person TobKel    schedule 22.01.2019
comment
Full_join няма да приеме нищо друго освен dataframe или tibble, така че не предавате правилен обект с данни на full_join   -  person JineshEP    schedule 22.01.2019


Отговори (1)


Резултатът от mget е списък от знаци, ето защо full_join се проваля с грешка.

Опитайте тази:

map(lst1, function(x) {full_join(tibble(x),head(BTC.USD),by="Date")}) # Full join might fail becuase lst1 has no column called Date.

Освен това в резултата от mget в lst1 (който имате) няма колона, наречена Date Създаване на lst1 tibble с колона за дата:

DateVec=c("2015-12-31")
map(lst1, function(x) {full_join(tibble(x,Date=DateVec),head(BTC.USD),by="Date")})
person JineshEP    schedule 22.01.2019