On Apr 24, 2009, at 12:16 AM, David Winsemius wrote:
I cannot figure out what you are trying to do, but I'm reasonably
sure that the construction:
xxx[[index,index2]] ... is going to fail. If you want to create a
two dimensional structure, most people would use either a dataframe
or a matrix rather than a list, although lists have the advantage
that they do not need to be "pre-dimensioned". If you know what your
dimension are in advance they are probably the way to go.
If you want to access multiple "dimensions" of a list, do not use
[[ , ]] but rather [[ idx ]] to get the desired first "dimension"
and then [ idx2 ] to the right of the expression for the first
"dimension" to get or change the second "dimension", although
"level" or "depth" might be the better terminology.
m <- list(sin, 1:3, letters[1:3], expression(a+b))
m[[2]][3] # ]
# that "]" shouldn't be there
m[[2]][3] <- 8
m
m[[2]][3]
You have a better chance of getting on target advice if you explain
what you want to do rather than showing us code patterned on another
language that obviously doesn't work in R.
On Apr 23, 2009, at 10:29 PM, Toby wrote:
I must be going about my idea really backwards. I have functions
like so:
Nasa_PART_Bounds <- rbind(Nasa_PART_Bounds, c("Nasa_PART_B1"))
Nasa_PART_B1 <- function(l,u) {
l[["Nasa_PART_B1", "CYCLOMATIC_COMPLEXITY"]] <- 8
u[["Nasa_PART_B1", "CYCLOMATIC_COMPLEXITY"]] <- 60
l[["Nasa_PART_B1", "LOC_TOTAL"]] <- 73
}
Where I add the function names of each "bounds" function to a list,
which later on get called with two variables.
dispatch2 <- function(f, x, y) {
eval(call(f, x, y))
}
for (i in bounds) {
bb <- eval(substitute(foo[,1], list(foo=as.name(i))))
rr <- lapply(bb, dispatch2, lb, ub)
}
However, I don't know how to do this in a better "R" way. I think
my C and
pearl experience is showing through... :(
-Toby.
On Thu, Apr 23, 2009 at 8:20 PM, Gabor Grothendieck <ggrothendi...@gmail.com
wrote:
Matrix made from a list:
m <- list(sin, 1:3, letters[1:3], expression(a+b))
dim(m) <- c(2, 2)
dimnames(m) <- list(letters[1:2], LETTERS[1:2])
class(m) # matrix
or
M <- structure(list(sin, 1:3, letters[1:3], expression(a+b)), .Dim
= c(2,
2),
.Dimnames = list(c("a", "b"), c("A", "B")))
class(M) # matrix
On Thu, Apr 23, 2009 at 10:03 PM, Toby
<tobias.weingart...@gmail.com>
wrote:
I'm trying to figure out how I can get a generalized 2D
list/array/matrix/whatever
working. Seems I can't figure out how to make the variables the
right
type. I
always seem to get some sort of error... out of bounds, wrong
type, wrong
dim, etc.
Very confused... :)
x[["some label", "some other index"]] <- 3
x[["some other label", "something else"]] <- 4
I don't know the indexes/label ahead of time... they get
generated...
Any
thoughts?
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
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.