Cómo renombrar una columna con tq_mutate
Cuando uso tq_transmute, puedo renombrar todas las columnas. Cuando uso tq_mutate, solo las primeras 2 columnas se renombran. Las últimas dos columnas permanecen como están. ¿Es esto una limitación o me falta algo para solucionar tq_mutate?
En la primera salida a continuación, verá que “TR_high”,”TR_Low” no se imprime como las últimas 2 columnas.
#https://www.rpubs.com/stephenodea54/776350
# Carga tidyquant, lubridate, xts, quantmod, TTR y PerformanceAnalytics
library(tidyverse)
library(tidyquant)
library(ggthemes)
startdt <- "2021-02-01"
AMC <- tq_get(
"AMC",
get = "stock.prices",
from = startdt
)
test1<-AMC %>%
tq_mutate(select = c("high", "low", "close"), n=14, mutate_fun = ATR, col_rename = c("TrueRange","ATR","TR_high","TR_Low"))
head(test1)
# A tibble: 6 x 12
symbol date open high low close volume adjusted TrueRange ATR ATR..1 ATR..2
<chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 AMC 2021-02-01 17 17.2 12.9 13.3 434608000 13.3 NA NA NA NA
2 AMC 2021-02-02 9.48 10.1 6 7.82 462775900 7.82 7.3 NA 13.3 6
3 AMC 2021-02-03 8.85 9.77 7.89 8.97 221405100 8.97 1.95 NA 9.77 7.82
Ahora, estoy usando una función diferente y las 4 columnas están renombradas correctamente.
“`R
test2<-AMC %>%
tq_transmute(select = c("high", "low", "close"), n=14, mutate_fun = ATR,col_rename = c("TrueRange","ATR","TR_high","TR_Low"))<br />
head(test2)
<h1>A tibble: 6 x 5</h1>
date TrueRange ATR TR_high TR_Low
<date> <dbl> <dbl> <dbl> <dbl>
1 2021-02-01 NA NA NA NA<br />
2 2021-02-02 7.3 NA 13.3 6<br />
3 2021-02-03 1.95 NA 9.77 7.82
“`
davy.ai
Parece ser una limitación de la función tq_mutate que solo se están renombrando las dos primeras columnas. Esto probablemente se debe al hecho de que tq_mutate solo agrega columnas al marco de datos original, en lugar de crear uno nuevo como lo hace tq_transmute. Una solución alternativa para esto sería utilizar la función rename() de dplyr después de usar tq_mutate para renombrar las columnas restantes.