[R] Loop for CrossTable (gmodels)
arun
smartpink111 at yahoo.com
Sun May 12 19:30:25 CEST 2013
Hi,
According to the error, the variables should have the same length.
For example:
set.seed(24)
dat1<- cbind(RACE=sample(1:10,10,replace=TRUE),as.data.frame(matrix(sample(1:100,20*10,replace=TRUE),ncol=20)))
lapply(dat1[,-1],function(x) CrossTable(x,dat1$RACE,format="SPSS",prop.chisq=FALSE,digits=2,dnn=c("VAR","RACE"))) # prints cross tables.
#or
lapply(names(dat1)[-1],function(x) CrossTable(dat1[,x],dat1[,"RACE"],format="SPSS",prop.chisq=FALSE,digits=2,dnn=c(x,"RACE")))
A.K.
>Hi,
>
>I have 20 variables in a data frame (VAR1 ... VAR20) which I would like to crosstab against the variable RACE.
>I would like to use a loop structure instead of 20 statements like:
>CrossTable(VAR1, RACE, format = "SPSS", prop.chisq = FALSE, digits = 2)
>
>
>I have tried following syntax, but failed:
>
>library(gmodels)
>for(i in 1:20){
>columnname <- ("VAR",i)
>CrossTable(columnname, RACE, format = "SPSS", prop.chisq = FALSE, digits = 2)
>}
>
>I receive following Error:
>Error in CrossTable(columnname, RACE, format = "SPSS", prop.chisq = FALSE, :
> x and y must have the same length
>
>
>Any idea how to get 20 crosstables within a loop?
>
>Thank you for any hints,
>Stefan
More information about the R-help
mailing list