[R] writing function

arnaud Gaboury arnaud.gaboury at gmail.com
Mon May 24 18:17:35 CEST 2010


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.



More information about the R-help mailing list