R:在一个命令中将输出从 getSymbols() 转换为数据帧,而无需显式调用对象名称
R: Converting output from getSymbols() to data frame in one command without calling the object name explicitly
我想将 quantmod
包中 getSymbols
的输出转换为数据框。目前,我使用以下代码实现了这一点。
Data <- new.env()
getSymbols(Symbols = "EUR/USD", src = "oanda", from = "2005-01-01",
to = "2006-01-01", env = Data)
test <- as.data.frame(Data$EURUSD)
head(test)
理想情况下,我想将这段代码缩短为以下几行:
test <- as.data.frame(getSymbols(Symbols = "EUR/USD",
src = "oanda", from = "2005-01-01", to = "2006-01-01"))
但这并不能正常工作:
> head(test)
getSymbols(Symbols = "EUR/USD", src = "oanda", from = "2005-01-01", to = "2006-01-01")
1 EURUSD
理想情况下,我希望在处理数据时避免引用 EUR/USD
对,因为将来我将努力使该组件动态化,因此必须键入 test <- as.data.frame(Data$EURUSD)
会破坏乐趣.我理想的代码会像这样工作:
test <- as.data.frame(getSymbols(Symbols = *user input*,
src = "oanda", from = "2005-01-01", to = "2006-01-01"))
目前我不一定对 用户输入 感兴趣,但对强制 quantmod
输出到数据框而不需要调用 quantmod
对象名称。
您可以尝试这样的操作:
userInput="EUR/USD"
test<-as.data.frame(getSymbols(Symbols = userInput,
src = "oanda", from = "2005-01-01",to = "2006-01-01", env = NULL))
将 env
设置为 NULL
不会在环境中创建数据并返回它。
tidyquant
包非常适合这种情况。你可以试试这个:
tq_get("EUR/USD", get = "exchange.rates")
如果你想在同一个数据框中有更多的货币对,试试这个:
c("EUR/USD", "EUR/JPY", "EUR/GBP") %>%
tq_get(get = "exchange.rates")
然后您可以使用 "tidyverse" 的所有功能,例如使用 group_by
进行分组、使用 mutate
进行变异等。此外,tidyquant
包具有专门处理时间序列数据的其他函数。
我想将 quantmod
包中 getSymbols
的输出转换为数据框。目前,我使用以下代码实现了这一点。
Data <- new.env()
getSymbols(Symbols = "EUR/USD", src = "oanda", from = "2005-01-01",
to = "2006-01-01", env = Data)
test <- as.data.frame(Data$EURUSD)
head(test)
理想情况下,我想将这段代码缩短为以下几行:
test <- as.data.frame(getSymbols(Symbols = "EUR/USD",
src = "oanda", from = "2005-01-01", to = "2006-01-01"))
但这并不能正常工作:
> head(test)
getSymbols(Symbols = "EUR/USD", src = "oanda", from = "2005-01-01", to = "2006-01-01")
1 EURUSD
理想情况下,我希望在处理数据时避免引用 EUR/USD
对,因为将来我将努力使该组件动态化,因此必须键入 test <- as.data.frame(Data$EURUSD)
会破坏乐趣.我理想的代码会像这样工作:
test <- as.data.frame(getSymbols(Symbols = *user input*,
src = "oanda", from = "2005-01-01", to = "2006-01-01"))
目前我不一定对 用户输入 感兴趣,但对强制 quantmod
输出到数据框而不需要调用 quantmod
对象名称。
您可以尝试这样的操作:
userInput="EUR/USD"
test<-as.data.frame(getSymbols(Symbols = userInput,
src = "oanda", from = "2005-01-01",to = "2006-01-01", env = NULL))
将 env
设置为 NULL
不会在环境中创建数据并返回它。
tidyquant
包非常适合这种情况。你可以试试这个:
tq_get("EUR/USD", get = "exchange.rates")
如果你想在同一个数据框中有更多的货币对,试试这个:
c("EUR/USD", "EUR/JPY", "EUR/GBP") %>%
tq_get(get = "exchange.rates")
然后您可以使用 "tidyverse" 的所有功能,例如使用 group_by
进行分组、使用 mutate
进行变异等。此外,tidyquant
包具有专门处理时间序列数据的其他函数。