Upon reading it yesterday, it appeared as it would have required some serious testing and there was no data on which to do any work. You were clearly not taking the time to isolate the problem and construct a dataset. But who knows? When you say "What I want to do is. ... ,I would like the name of the list to be created in the loop too", maybe all you needed was to be pointed to was:

?assign

But if that were the case, then you lost most of your audience along the way with a bunch of unneeded and obscure code.

--
David.


On Feb 1, 2010, at 10:45 AM, Ivan Calandra wrote:

Hi everybody,

I'm kind of surprised that I didn't get any answer to my question... Is it not interesting? Is it not well explained? Am I doing something wrong? Was it lost in the hundreds of other emails during the weekend?

I hope it is because of my last guess. So I'll just send the email again (see below).
I really need some help on this matter.

Thanks in advance.

To run some statistical tests from the package WRS (from Rand R Wilcox), I need to store my data in a list, which fac2list() from this package does very well. But I would like to do it in a loop for each numerical variable. It would be easier!

For now, I have the loop with the extraction and storage into a list. The code is below.
-----
# Defines variables
file <- ssfamed                          #data file object to be used
spec <- "cotau"                         #species selection
bone <- "tx"                              #tooth row selection
cat <- 3 #column indexe to be used as categorical variable seq.num <- c(seq(7,21,1)) #column indexes to be used as numerical variables

# Select data for species and tooth row
select <- file[file$SPECSHOR==spec & file$BONE==bone, ]

#Separate the data from each numeric variable in seq.num (select[,k]) into groups from levels in select[cat] and store into list mode.
for(i in 1:length(seq.num)) {
k <- seq.num[i]
name.num <- names(file)[k]
TO_POS_Asfc.median_cotautx <- fac2list(select[,k], select[cat])
names(TO_POS_Asfc.median_cotautx) <- levels(factor(select[[cat]]))
}
-----

What I want to do is, instead of giving manually the name of the list (here TO_POS_Asfc.median_cotautx), I would like the name of the list to be created in the loop too, so that it looks like: select[[cat]]_name.num_specbone. In the code it would look like:
-----
select[[cat]]_name.num_specbone <- fac2list(select[,k], select[cat]) #create the list from the values of these variables at each iteration of the loop names(select[[cat]]_name.num_specbone) <- levels(factor(select[[cat]]))
-----
I thought about using paste(), but I cannot create an object like this. In my small R life, I've always stored data into pre-defined objects, I have no idea how to create an object automatically within a loop.

Is my question clear? I hope so. I thought there might be a function that would create an object where the name would come from a string stored in an other object.

Why do I want that? Simply because I want to run several statistical tests on each list and I would therefore like to have standardized names for the data objects.

There might be easier ways to do what I want to, I'm open to all suggestions but I would prefer to stay close from my idea (I would understand better!)

______________________________________________
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.

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.

Reply via email to