Hi:
Hi:
Observe that if you quote the name of the variable in your original
function,
everything is fine; in fact, you can ask for multiple variables.
> k <- function(df, col) df[col]
> k(testdata, 'var1')
var1
1 0.91663902
2 0.60470753
3 0.09599891
> k(testdata, 'censor')
censor
1 0
2 0
3 0
> k(testdata, c('start', 'stop'))
start stop
1 0 1
2 1 2
3 2 3
However, if you use the deparse/substitute trick, it works, but only
for a single variable:
k2 <- function(df, col) df[deparse(substitute(col))]
> k2(testdata, var1)
var1
1 0.91663902
2 0.60470753
3 0.09599891
> k2(testdata, start)
start
1 0
2 1
3 2
> k2(testdata, c(start, stop))
Error in `[.data.frame`(df, deparse(substitute(col))) :
undefined columns selected
and the same error is returned if the variables are quoted.
HTH,
Dennis
On Fri, Feb 12, 2010 at 11:01 AM, Philipp Rappold <[email protected]
> wrote:
> Sorry guys, but I have another one:
>
>
> I want to write a function that returns a certain column of a dataframe.
> The function accepts two argument: the dataframe and the name of the column,
> but the column is not given as a "string" but as a variable name.
>
> EXAMPLE
> ----------------------
>
> > testdata
> start stop censor groupvar var1 var2
> 1 0 1 0 1 0.91663902 0.0847912
> 2 1 2 0 1 0.60470753 0.6487798
> 3 2 3 0 1 0.09599891 0.2195178
> x
>
> k <- function(df, col) df[col]
>
> EXPECTED RESULTS
> -------------------------------------
> k(testdata, var1) should return the same output as testdata["var1"], which
> is
>
> var1
> 1 0.91663902
> 2 0.60470753
> 3 0.09599891
> 4 NA
> 5 0.07747445
> 6 0.44608030
> 7 0.77317152
>
> Note that I want to use k(testdata, var1) instead of k(testdata, "var1").
>
> Thanks for your help!
> All the best
> Philipp
>
>
> ______________________________________________
> [email protected] 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.
>
[[alternative HTML version deleted]]
______________________________________________
[email protected] 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.