[R] glob2rx function not working
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Mon Feb 20 19:19:09 CET 2006
mtb954 at gmail.com writes:
> Dear R users,
>
> Inspired by previous list discussion of the glob2rxc function, I am
> attempting to create a new vector called TOTAL by summing all vectors
> whose names begin with ABC:
>
> TOTAL = sum(list = ls(pattern = glob2rx("ABC*")))
>
> I'm running R 2.2.1 on Windows XP. Can anyone say what I'm missing?
Probably, but I'll save the sarcasm...
Consider this:
> ls()
[1] "as.alist.call" "f" "fire"
[4] "Hgb" "perulung" "walk2"
[7] "x" "y" "zelazo"
> ls(pattern=glob2rx("f*"))
[1] "f" "fire"
> sum(list=ls(pattern=glob2rx("f*")))
Error in sum(..., na.rm = na.rm) : invalid 'mode' of argument
which is because
> sum(c("f","fire"))
Error in sum(..., na.rm = na.rm) : invalid 'mode' of argument
and has nothing to do with glob2rx, which is working fine.
You may be looking for constructions like
do.call("sum",lapply(ls(pattern=glob2rx("ABC*")), get)))
or
sum(unlist(lapply(ls(pattern=glob2rx("ABC*")), get)))
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list