1
xtsに数値を含めるだけでxtsをデータフレームに変換した後に列を追加しようとしています。追加私は最後の結果として行ごとにバインドしたいが、私は失敗し、解決策を見つけることができない。ここで私のコードは、stackoverflow上の別の著者から収集されます。それに感謝します!zooをデータフレームに変換した後にTickerで列を追加します
library(quantmod)
# Fetch all Symbols from AMEX
symbols <- stockSymbols(exchange = c("AMEX"))
symbols <- symbols[,1]
# define environment
data <- new.env()
# Load Stock data in environment
getSymbols(symbols,from="2016-01-01", env=data)
# build function to convert zoo to dataframe
zoo.to.data.frame <- function(x, index.name="Date") {
stopifnot(is.zoo(x))
xn <- if(is.null(dim(x))) deparse(substitute(x)) else colnames(x)
setNames(data.frame(index(x), x, row.names=NULL), c(index.name,xn))
}
# build function to calculate different signals (...only price and ADX in this example)
"SignalCalculator" <- function(x) {
# Adjusted Price
price <- x[,c(6)]
# ADX
adx <- ADX(x[,c("High","Low","Close")], n =14)
DIp <- adx$DIp
DIn <- adx$DIn
Adx <- adx$ADX
# bind single values together and convert to dataframe
result <- zoo.to.data.frame(cbind(price, DIp, DIn, Adx))
# the following is not working respectively I don´t know how to
# result2 <- cbind(result, Ticker = x)
}
# Loop function on data #
lapply(data,FUN = SignalCalculator)
機能は、すべてのティッカーに適用された後、私がやりたい何か、csvファイルにエクスポートするために内部のすべてのティッカーで、行バインドを一つの巨大なデータフレームを生成することです。これは次のようになります。しかし、私にとってそれらを結びつける方法は不明です。私はこのトピックに関する助けに感謝します。ありがとう。以下
素晴らしい!それはどのように見えるかです。私のコードも簡素化してくれてありがとう!ただ一つの質問。各ティッカーの最終日のみを選択することは可能ですか? – Sven
最後の日付がティッカーごとに異なると仮定すると、簡単なアプローチです: 'library(data.table); dt_out < - as.data.table(out2); dt_out [Date == max(Date)、SD、by = list(Ticker)]; ' – FXQuantTrader
Ok。これはよさそうだ。コードを実行すると、結果がコンソールにどのように表示されるかが表示されます。しかし、 'View(dt_out)'を実行すると、前と同じようにすべての日付が取得されますか? – Sven