[R] sapply on data frames - $X vs.["X"]

Jacques VESLOT jacques.veslot at cirad.fr
Thu Jan 19 07:05:03 CET 2006

with apply loop, x is a vector you are indexing in the first sample code 
with its names.
so it failed when you tried indexing it with "$" which is dedicated to 
data frames.

Fernando Saldanha a écrit :

>I have a program where the following code works fine:
>df.opt$Delta <- apply(df.opt, 1, function(x)
>EuropeanOption(x["CallPutString"], x["UnderlyingPrice"],
>x["StrikePrice"], 0, interest.rate, x["FractionalExpiration"],
>However, the code below fails:
>#df.opt$Delta <- apply(df.opt, 1, function(x)
>EuropeanOption(x$CallPutString, #x["UnderlyingPrice"],
>x["StrikePrice"], 0, interest.rate, x["FractionalExpiration"],
>Here df.opt is a data frame and European Option is a function in the
>package RQuantLib.
>The only difference between the two pieces of code is that a column of
>the data frame is accessed using "$" in the first case and brackets in
>the second case.
>Sorry if this is a trivial question, but could somebody tell me the
>reason for this behavior?
>R-help at stat.math.ethz.ch mailing list
>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

More information about the R-help mailing list