列名をマップ関数のデータフレーム名に置き換えるのに問題があります。私は暗号通貨の時系列データを持つ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.
次に、2番目の列の名前( "Close")をデータフレームの名前( "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データフレームすべてのすべての「閉じる」列の名前を変更しようとしています。
names_of_dataframes <- ls.str(mode = "list")
map(names_of_dataframes, colnames(x)[2] <- names_of_dataframes[[i]])
しかし、それは機能しません。誰かが私を助けることができますか?
私たちは、にデータセットを取得list
しmget
てループlist
とはimap
、rename
との2列.y
与えるdata.frame
オブジェクト名を
library(tidyverse)
mget(ls(pattern="USD")) %>%
imap(~ {nm1 <- .y
.x %>%
rename_at(2, ~ nm1) })
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加