Thanks Erik

I can't figure out how to use the various x_apply functions in this setting, 
nor post datasets to reproduce. But anyhow: the table structure is something 
like this:

id (integer), handedness(R,L,A), gender(M,F), cat1(patient, control). 
cat2(stroke, MS, dement, control), accuracy(integer), reaction time(numeric)....

so, I want to extract the factor levels from cat1, cat2, etc and run, say, 
ANOVAs or ROCs on each of the response variables (accuracy, reaction_time, etc) 
extracting F-values, AUCs, etc, sticking the results in a table of results. 
Here is an example script I wrote for ROCR:


#######
library(ROCR) # Load stats package to use if not standard
varslist<-scan("/Users/jween/Desktop/INCAS/INCASvars.txt","list") # Read 
variable list
results<-as.data.frame(array(,c(3,length(varslist)))) # Initialize results 
array, one type of stat at a time for now

for (i in 1:length(varslist)){ # Loop through the variables you want to 
process. Determined by varslist
        j<-noquote(varslist[i])
        vars<-c(varslist[i],"Issue_class") # Variables to be analyzed
        temp<-na.omit(MSsmv[vars]) # Have to subset to get rid of NA values 
causing ROCR to choke
        n<-nrow(temp) # Record how many cases the analysis ios based on. Need 
to figure out how to calc cases/controls
        #.table<-table(temp$SubjClass)  # Maybe for later figure out 
cases/controls
        results[1,i]<-j # Name particular results column
        results[2,i]<-n # Number of subjects in analysis
        test<-try(aucval(i,j),silent=TRUE) # Error handling in case procedure 
craps oust so loop can continue. Supress annoying error messages
        if(class(test)=="try-error") next else # Run procedure only if OK, 
otherwise skip
        pred<-prediction(MSsmv[[j]], MSsmv$Issue_cat); # Procedure
        perf<-performance(pred,"auc");
        results[3,i]<-as.numeric(p...@y.values) # Enter result into appropriate 
row
        
}
write.table(results,"/Users/jween/Desktop/IncasRres_MSsmv.csv",sep=",",col.names=FALSE,row.names=FALSE)
 # Write results to table
rm(aucval,i,n,temp,vars,results,pred,perf,j,varslist) # Clean up test,

aucval<-function(i,j){ # Function to trap errors. Should be the same as real 
procedure above
        pred<-prediction(MSsmv[[j]], MSsmv$Issue_cat); # Don't put any real 
results here, they don't seem to be passed back
        perf<-performance(pred,"auc");
}
#######

Cheers


Jon

Soli Deo Gloria

Jon Erik Ween, MD, MS
Scientist, Kunin-Lunenfeld Applied Research Unit 
Director, Stroke Clinic, Brain Health Clinic, Baycrest Centre
Assistant Professor, Dept. of Medicine, Div. of Neurology
    University of Toronto Faculty of Medicine

Kimel Family Building, 6th Floor, Room 644 
Baycrest Centre
3560 Bathurst Street 
Toronto, Ontario M6A 2E1
Canada 

Phone: 416-785-2500 x3648
Fax: 416-785-2484
Email: jw...@klaru-baycrest.on.ca


Confidential: This communication and any attachment(s) may contain confidential 
or privileged information and is intended solely for the address(es) or the 
entity representing the recipient(s). If you have received this information in 
error, you are hereby advised to destroy the document and any attachment(s), 
make no copies of same and inform the sender immediately of the error. Any 
unauthorized use or disclosure of this information is strictly prohibited.



On 2010-06-09, at 12:20 PM, Erik Iverson wrote:

> 
> 
> Jon Erik Ween wrote:
>> Hi!
>> Would anyone know how to generate a list of variable names from a
>> data frame by the class of the variable?
> 
> a start...
> 
> df <- data.frame(f1 = factor(1:10),
>                 f2 = factor(1:10),
>                 n1 = 1:10,
>                 n2 = 1:10)
> 
> 
> sapply(df, class)
> 
>> I have large tables with different numbers of columns and am trying
>> to script some rote analyses. There are several categorizing
>> variables (factors) and many response variables (integers and
>> numeric). I want to extract a list of classifier column names in one
>> list and response variable names in another list, then run for-loops
>> to calculate various statistics on the response variables in terms of
>> the classifier variables. I thought something like this might work
>> (but didn't):
> 
> Reproducible example needed.  All this can surely be done more elegantly with 
> lapply/mapply instead of for-loops.

______________________________________________
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