Я пытаюсь eapply
в среде.
Я хочу удалить все "символы" из имен столбцов, поэтому стандартизирую их.
Код, который у меня есть:
eapply(dataEnv, function(x) gsub(paste(symbols, ".", sep = ""), "", colnames(x)))
Я получаю это сообщение:
> eapply(dataEnv, function(x) gsub(paste(symbols, ".", sep = ""), "", colnames(x)))
$AAPL
[1] "AAPL.Open" "AAPL.High" "AAPL.Low" "AAPL.Close" "AAPL.Volume" "AAPL.Adjusted"
$GOOG
[1] "Open" "High" "Low" "Close" "Volume" "Adjusted"
$MSFT
[1] "MSFT.Open" "MSFT.High" "MSFT.Low" "MSFT.Close" "MSFT.Volume" "MSFT.Adjusted"
Warning messages:
1: In gsub(paste(symbols, ".", sep = ""), "", colnames(x)) :
argument 'pattern' has length > 1 and only the first element will be used
2: In gsub(paste(symbols, ".", sep = ""), "", colnames(x)) :
argument 'pattern' has length > 1 and only the first element will be used
3: In gsub(paste(symbols, ".", sep = ""), "", colnames(x)) :
argument 'pattern' has length > 1 and only the first element will be used
Как настроить код, чтобы он заработал?
Данные:
require(PerformanceAnalytics)
library(quantmod)
library(data.table)
from <- "2017-01-01"
to <- "2018-12-01"
symbols <- c('GOOG', 'MSFT', 'AAPL')
dataEnv <- new.env()
getSymbols(symbols, from=from, to = to, src = "yahoo", adjust = TRUE, env = dataEnv)
eapply(dataEnv, function(x) gsub(paste(symbols, ".", sep = ""), "", colnames(x)))
РЕДАКТИРОВАТЬ:
Я хотел бы выполнить вычисление в среде.
вычисление:
with(dataEnv$GOOG, ifelse(GOOG.Close >= GOOG.Open, 1, 0))
Что дает мне результат 0 и 1 с.
Моя текущая попытка это:
data <- eapply(dataEnv, function(x){
as.data.frame(x) %>%
rename_all(function(n){
gsub("^(\\w+)\\.", "", n, perl = TRUE)
})
lapply(x, 2, function(z) ifelse(z$close >= z$open, 1, 0))
})