Dear List, i would like to mimic the behaviour or the following indexing with a do.call construct to be able to supply the arguments to `[` as a list: test = matrix[1:4,2] result = test[2,] My try, however, did not work: result = do.call(`[`,list(test,2,NULL)) result = do.call(`[`,list(test,2,)) result = do.call(`[`,list(test,2,'')) How can I use the do.call in that way with leaving the second indexing vector blanc? Cheers Jannis
Good question, Jannis.
I couldn't figure out how to specify the j argument in the "["
function as
empty or missing either.
One work around is to specify ALL the columns as the j argument:
test <- matrix(1:4, 2) # I think this is what you meant in your
original post, not matrix[1:4, 2]
result1 <- test[2, ]
result2 <- do.call("[", list(test, 2, seq(dim(test)[2])))
test
result1
result2
Jean
`·.,, ><(((º> `·.,, ><(((º> `·.,, ><(((º>
Jean V. Adams
Statistician
U.S. Geological Survey
Great Lakes Science Center
223 East Steinfest Road
Antigo, WI 54409 USA
From:
Jannis <bt_jannis@yahoo.de>
To:
r-help@r-project.org
Date:
08/03/2011 05:35 AM
Subject:
[R] syntax with do.call and `[`
Sent by:
r-help-bounces@r-project.org
Dear List,
i would like to mimic the behaviour or the following indexing with a
do.call construct to be able to supply the arguments to `[` as a list:
test = matrix[1:4,2]
result = test[2,]
My try, however, did not work:
result = do.call(`[`,list(test,2,NULL))
result = do.call(`[`,list(test,2,))
result = do.call(`[`,list(test,2,''))
How can I use the do.call in that way with leaving the second indexing
vector blanc?
Cheers
Jannis
______________________________________________
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.
[[alternative HTML version deleted]]
On Aug 3, 2011, at 12:30 , Jannis wrote:> Dear List, > > > > i would like to mimic the behaviour or the following indexing with a do.call construct to be able to supply the arguments to `[` as a list: > > > test = matrix[1:4,2] > > result = test[2,] > > > My try, however, did not work: > > result = do.call(`[`,list(test,2,NULL)) > result = do.call(`[`,list(test,2,)) > result = do.call(`[`,list(test,2,'')) > > > How can I use the do.call in that way with leaving the second indexing vector blanc? >alist() actually allows this, although probably more by coincidence than by design. Watch:> do.call(`[`, alist(test, 2, ))[1] 2 4 If you want to turn this into a programming idiom, be aware that there are subtle differences because alist() does not evaluate its arguments. E.g., the two plots below are not quite the same.> x <- 1:10 > y <- rnorm(10) > do.call(plot, list(x, y)) > do.call(plot, alist(x, y))-- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com "D?den skal tape!" --- Nordahl Grieg