Dear list,
I have problem that I cannot solve and would like to ask your opinion. I
tried to ask a few days ago already but got no answer and all my
attempts to
solve it by myself since then failed. Sorry for repeated posting! Here
the
problem broken down a bit.
My problem basically is, that I want to use the elements of a character
vector as names for objects and by recalling only the subscript of the
character vector get the object information I assigned.
Example:
vector of names created as follows:
char <- paste("A",1,sep="")
for (i in 2:10) {char[i] <- paste("A",i,sep="")}
char
[1] "A1" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" "A10"
Slightly better
char <- paste("A",1:10,sep="")
Now assign each element as name for a data frame:
(d <-
x <- paste("X",1,sep="")
y <- paste("Y",1,sep="")
for (i in 2:10) {x[i] <- paste("X",i,sep="")
y[i] <- paste("Y",i,sep="")}
Maybe you wanted
x <- paste("X",1:10,sep="")
y <- paste("Y",1:10,sep="")
for (k in 1:10) {assign(char[k],d[,c(x[k],y[k])])}
I would use list.
lll<- vector(mode="list", 10)
names(lll) <- char
for(k in 1:10) lll[[k]] <- d[,c(x[k],y[k])]
instead of many An objects you have one object with names An and you can
easily subset it.
lll[[1]]
lll[["A5"]]
If I call "A1", I get a dataframe with columns "X1" and "Y1", so far so
good.
Now the trouble part:
nam <- paste("test",1,sep="")
for (i in 2:10) {nam[i] <- paste("test",i,sep="")}
nam <- paste("test",1:10,sep="")
for (i in 1:10){assign(nam[i],as.ltraj(xy=char[1],date=DATE,...)
So the same applies here
lll<- vector(mode="list", 10)
names(lll) <- char
for (i in 1:10) lll[[i]] <- as.ltraj(xy=char[i],date=DATE,...)
However I do not know as.ltraj which may require different input of
parameters.
Anyway in this case are lists by my opinion the only way to be able to
handle such things smoothly and without much headache.
Regards
Petr
????????????
Please don't get carried away by as.ltraj, it's an object type of the
package adehabitat to analyze animal tracks. However, I need to feed it
the
xy (coordination) information in form of a data frame. I have 20 animals
to
analyze (per different setup), so I want it to work in a handier way
than
keep pushing buttons. By the way I handle it now, I only hand over the
term
"A1" but not the data frame "A1".
How can I solve this. Turning the vector into a list does not work and I
am
not sure if there's something I can do...
Please help if you can! Many thanks in advance already.
Jacqueline
[[alternative HTML version deleted]]