У меня проблема с заменой имени столбца на имя информационного кадра на функцию карты. У меня 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"
Каждый объект - это фрейм данных, обозначающий криптовалюту, выраженную в долларах США. И на каждом фрейме данных есть 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.
Теперь я хочу заменить имя второго столбца («Закрыть») на имя кадра данных («BTC.USD»)
Для этого случая я использовал следующий код:
colnames(BTC.USD)[2] <-deparse(substitute(BTC.USD))
И этот код работает так, как я себе представлял:
head(BTC.USD)
# A tibble: 6 x 2
Date BTC.USD
1 2015-12-31 430.
2 2016-01-01 434.
3 2016-01-02 434.
Теперь я пытаюсь переименовать все столбцы «Закрыть» для всех 25 фреймов данных криптовалюты с помощью функции map:
names_of_dataframes <- ls.str(mode = "list")
map(names_of_dataframes, colnames(x)[2] <- names_of_dataframes[[i]])
Но это не работает. Кто-нибудь может мне помочь?