I am not able to reproduce your problem but I may have a solution that
will help.
The result of my
names(tickers)
doesn't have those strange objects.
In any case, try this workaround. Replace

tickers <- mget(ls(pattern = paste(tickers, collapse = "|")))

by

tickers <- mget(ls(pattern = paste(paste(tickers,"$",sep=""), collapse="|")))

HTH,
Eric

On Mon, Dec 29, 2025 at 4:23 PM Andre Luiz Tietbohl Ramos
<[email protected]> wrote:
>
> 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"              "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

_______________________________________________
[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