Hello,

Thanks for the interest, Enrico. It is below.
R> R> tickers
 "AALR3.SA"  "AGRO3.SA"  "ALPA3.SA"  "ALPA4.SA"  "ALUP11.SA" "AMER3.SA"  "
AMOB3.SA"  "ANIM3.SA"  "ASAI3.SA"  "AURE3.SA"  "AZUL4.SA"  "B3SA3.SA" "
BAUH4.SA"  "BAZA3.SA"  "BBAS3.SA"  "BBDC4.SA"  "BBSE3.SA"  "BDLL4.SA"  "
BEES3.SA"  "BIDU34.SA" "BLAU3.SA"  "BMOB3.SA"  "BPAC11.SA" "BPAN4.SA" "
BRAP4.SA"  "BRFS3.SA"  "BRKM5.SA"  "BRSR6.SA"  "BRST3.SA"  "BSLI3.SA"  "
CBAV3.SA"  "CEAB3.SA"  "CEBR3.SA"  "CMIG3.SA"  "CMIG4.SA"  "CMIN3.SA" "
COPH34.SA" "CPFE3.SA"  "CPLE6.SA"  "CRPG5.SA"  "CSAN3.SA"  "CSED3.SA"  "
CSMG3.SA"  "CSNA3.SA"  "CSUD3.SA"  "CXSE3.SA"  "CYRE3.SA"
...
R>
R> getSymbols(tickers, src = "yahoo", from = start, to = end, maxgap = 10,
auto.asign = TRUE)
R>
R> tickers <- mget(ls(pattern = paste(tickers, collapse = "|")))
R>
R> names(tickers)
  [1] "AALR3.SA"              "AFHI11.SA"             "AGRO3.SA"
   "ALPA3.SA"              "ALPA4.SA"              "ALUP11.SA"
  [7] "AMER3.SA"              "AMOB3.SA"              "ANIM3.SA"
   "ASAI3.SA"              "AURE3.SA"              "AZUL4.SA"
 [13] "B3SA3.SA"              "BAUH4.SA"              "BAZA3.SA"
   *"BBAS3.SA <http://BBAS3.SA>"              "BBAS3.SA_log_returns"
 "BBAS3.SA_mean_log"   *
 [19] "BBAS3.SA_sd_log"       "BBDC4.SA"              "BBSE3.SA"
 "BBSE3.SA_log_returns"  "BBSE3.SA_mean_log"     "BBSE3.SA_sd_log"
 [25] "BDLL4.SA"              "BEES3.SA"              "BIDU34.SA"
  "BLAU3.SA"              "BMOB3.SA"              "BPAC11.SA"
 [31] "BPAN4.SA"              "BRAP4.SA"              "BRFS3.SA"
   "BRKM5.SA"              "BRSR6.SA"              "BRST3.SA"
...
R> class(tickers$BBAS3.SA)
[1] "xts" "zoo"
R> colnames(tickers$BBAS3.SA)
[1] "BBAS3.SA.Open"     "BBAS3.SA.High"     "BBAS3.SA.Low"
 "BBAS3.SA.Close"    "BBAS3.SA.Volume"   "BBAS3.SA.Adjusted"
R> class(tickers$BBAS3.SA_log_returns)
[1] "xts" "zoo"
R>  colnames(tickers$BBAS3.SA_log_returns)
[1] "daily.returns"
R> class(tickers$BBAS3.SA_mean_log)
[1] "numeric"
R> R> colnames(tickers$BBAS3.SA_mean_log)
NULL  (as expected)
R>

Therefore the list I get from the mget operation above contains several
elements with different types, which may include even _sd_ columns as well.
My objective is to get rid of the .SA suffix used for Brazilian stocks in
all elements downloaded as well as their columns.  I chose to put
everything in a list and operate on it.

TIA,

--
André Luiz Tietbohl Ramos, PhD.


Em seg., 29 de dez. de 2025 às 10:25, Enrico Schumann <[email protected]>
escreveu:

> On Mon, 29 Dec 2025, Andre Luiz Tietbohl Ramos writes:
>
> > Hello Eric,
> >
> > Thanks for the reply!  Your answer was correct however the my problem was
> > not explained correctly, my apologies to everyone.
> > The issue is that once a list is built from the symbols that were
> download
> > a mixed type list is formed, see below.
> >
> > R> class(tickers$VALE3.SA_sd_log)
> > [1] "numeric"
> > R> class(tickers$VALE3.SA)
> > [1] "xts" "zoo"
> > R> R>
> >
> > The VALE3 ticker has another list element as well: VALE3.SA_mean_log.
> > This happens with a few of the symbols only thus the issue at hand seems
> to
> > be removing the list "numeric" type elements.
> >
> > TIA,
> >
> > --
> > André Luiz Tietbohl Ramos, PhD.
> >
>
> Could you please post a small, reproducible example (in plain
> text)?  Otherwise, it will be hard so see where your problem
> lies.
>
>
> kind regards
>     Enrico
>
>
> > Em seg., 29 de dez. de 2025 às 03:18, Eric Berger <[email protected]
> >
> > escreveu:
> >
> >> library(quantmod)
> >>
> >> keepohlc <- function(x) {
> >>     ohlc <- c(".Open",".High",".Low",".Close")
> >>     iV <- sapply(ohlc, \(s) {grep(s,colnames(x))})
> >>     x[,iV]
> >> }
> >>
> >> getSymbols("MSFT")
> >>
> >> head(MSFT)
> >>
> >>            MSFT.Open MSFT.High MSFT.Low MSFT.Close MSFT.Volume
> >> MSFT.Adjusted
> >> 2007-01-03     29.91     30.25    29.40      29.86    76935100
> >> 21.12207
> >> 2007-01-04     29.70     29.97    29.44      29.81    45774500
> >> 21.08670
> >> 2007-01-05     29.63     29.75    29.45      29.64    44607200
> >> 20.96644
> >> 2007-01-08     29.65     30.10    29.53      29.93    50220200
> >> 21.17159
> >> 2007-01-09     30.00     30.18    29.73      29.96    44636600
> >> 21.19280
> >> 2007-01-10     29.80     29.89    29.43      29.66    55017400
> >> 20.98060
> >>
> >> MSFT <- keepohlc(MSFT)
> >>
> >> head(MSFT)
> >>
> >>            MSFT.Open MSFT.High MSFT.Low MSFT.Close
> >> 2007-01-03     29.91     30.25    29.40      29.86
> >> 2007-01-04     29.70     29.97    29.44      29.81
> >> 2007-01-05     29.63     29.75    29.45      29.64
> >> 2007-01-08     29.65     30.10    29.53      29.93
> >> 2007-01-09     30.00     30.18    29.73      29.96
> >> 2007-01-10     29.80     29.89    29.43      29.66
> >>
> >>
> >> On Sun, Dec 28, 2025 at 11:51 PM Andre Luiz Tietbohl Ramos
> >> <[email protected]> wrote:
> >> >
> >> > Hello,
> >> >
> >> > I'm downloading quote data using the getSymbols() function.  It works
> >> very
> >> > well but downloads two additional columns for a few symbols,
> >> > namely _mean_log and _sd_log.
> >> > Therefore, the traditional 5 column OHLCV data frame has two more
> columns
> >> > in some symbols.
> >> >
> >> > I move all downloaded symbols to a list in order to ease some required
> >> > computation.  At the same time, my routine depends on OHLCV data only.
> >> > Thus, I need to have a new list discarding the additional columns that
> >> > exist in some symbols on the current list.  The symbols with the
> "extra"
> >> > columns must be kept. However their additional columns must be
> removed.
> >> >
> >> > Could anyone suggest a solution to this problem, please?
> >> >
> >> > Thanks in advance for any help,
> >> >
> >> > --
> >> > Andre Luiz Tietbohl Ramos, PhD
> >> >
>
> --
> Enrico Schumann
> Lucerne, Switzerland
> https://enricoschumann.net
>

        [[alternative HTML version deleted]]

_______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should 
go.

Reply via email to