My guess is that either ls(), called inside grep() or mget() is looking in an environment you do not want it to. When you create a function, it has it's own environment. If you want the dataframes to be created inside the function call (which is what I think you were doing before), you should set ls() and mget() to use your function environment. If the dataframes are supposed to be in the global environment, I would try adding:
mget(grep("DailyPL",ls(envir=.GlobalEnv),value=TRUE),envir=.GlobalEnv)) HTH, Josh On Mon, May 24, 2010 at 9:17 AM, arnaud Gaboury <arnaud.gabo...@gmail.com> wrote: > Dear group, > > Here is my environment after I run a function, myfun() > >>myfun() >> ls() > [1] "allcon" "avprix16" "DailyPL100416" "DailyPL100419" > "DailyPL100420" "l" "ll" "myl" "PL" > "PLdaily" "PLglobal" "PLmonthly" > [13] "Pos100415" "Pos100416" "Pos100419" "Pos100420" > "pose15" "pose16" "position" "r" "result" > "sel" "select" "Trad100415" > [25] "Trad100416" "Trad100419" "Trad100420" "trade" "tt" > "value" "w" "zz" > > Elements "DailyPL100416" "DailyPL100419" "DailyPL100420" are data frames > created by a function, myfun(). > If then I pass this line manually at the prompt: > >>dd<-data.frame(do.call(rbind, > mget(grep("DailyPL",ls(),value=TRUE),envir=.GlobalEnv)),row.names=NULL) > > Here is what I get, wich is the expected result : > > dd <- > structure(list(DESCRIPTION = structure(c(2L, 5L, 6L, 7L, 9L, > 11L, 12L, 15L, 14L, 16L, 1L, 10L, 3L, 4L, 13L, 8L, 17L, 2L, 3L, > 5L, 7L, 9L, 11L, 12L, 13L, 14L, 16L, 18L, 8L, 6L, 10L, 15L, 5L, > 19L, 9L, 10L, 11L, 12L, 13L, 14L, 16L, 2L, 3L, 20L, 18L, 7L, > 21L), .Label = c("COFFEE C Jul/10", "COPPER May/10", "CORN Jul/10", > "CORN May/10", "COTTON NO.2 Jul/10", "CRUDE OIL miNY May/10", > "GOLD Jun/10", "HENRY HUB NATURAL GAS May/10", "ROBUSTA COFFEE (10) Jul/10", > > "SILVER May/10", "SOYBEANS Jul/10", "SPCL HIGH GRADE ZINC USD", > "STANDARD LEAD USD", "SUGAR NO.11 Jul/10", "SUGAR NO.11 May/10", > "WHEAT Jul/10", "WHEAT May/10", "CRUDE OIL miNY Jun/10", "HENRY HUB NATURAL > GAS Jun/10", > "PALLADIUM Jun/10", "PLATINUM Jul/10"), class = "factor"), PL = c(3500, > -1874.99999999999, -2612.50000000003, -2169.99999999998, -680, > 425, 1025, 1008.00000000000, -3057.59999999999, 3212.5, -1781.25000000001, > -2265.0, 75, -387.5, 2950, 490.000000000013, 0, 2612.49999999998, > -4162.5, 279.99999999998, 589.999999999964, -3670, -1212.5, 887.5, > -625, 3976.00000000000, -7250, -1112.50000000000, -289.999999999999, > -1414.99999999999, 275, -526.400000000003, 6914.99999999999, > -19.9999999999978, -2330, 54.9999999999955, 1725, -3012.5, -5175, > -1769.60000000001, 3787.5, -537.500000000009, 175, -5330.00000000001, > 362.49999999999, 590.000000000009, -2995.00000000000)), .Names = > c("DESCRIPTION", > "PL"), row.names = c(NA, -47L), class = "data.frame") > > If I add this same line at the end of my function , here is what I get: > >> myfun() > data frame with 0 columns and 0 rows #dd doesn't return > > > What is wrong? > > Thank you for help. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > -- Joshua Wiley Senior in Psychology University of California, Riverside http://www.joshuawiley.com/ ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.