Hi!

You haven't got any answer probably because you didn't provide a reproducible example. You can do it by copy/pasting the output of dput(d) or dput(df). Moreover, before this email, I couldn't really understand what you were trying to do. It's not crystal clear now, but I think I got it.

First, when you read your txt, don't you already have the correct data.frame? What is the difference between d and df? It looks like your cbind() step is complicated. You can also index columns by their index numbers. So let's say you want in df the columns 1 to 5 and 6 to 8 from d. You can do it like this: sel <- c(1:5,6:8) ## creates a vector with the columns indexes you want to have in df df <- d[, sel] ## extract these columns from d and assign it into df. Note the first comma!
You can also so it in one step of course:
df <- d[, c(1:5,6:8)]

Second, in your loop, you overwrite at each iteration the result from the previous one. You could do something like this:
result <- numeric(length(df))  ## shouldn't it be length(df)-1?
for (i in 1:(length(df)-1)) {
result[i] <- chisq.test(table(df[[i]], df[[i+1]])) ## each computation will be stored in a different element of result
}


Next, chisq.test() returns a list, so it's not really a good idea to store the output in a vector.
Take a look at
str(chisq.test(table(df[[1]], df[[2]])))
to know which element(s) you want to keep.
You would probably want something like this:
chisq.test(table(df[[1]], df[[2]]))[1:3]

So back to your loop!
result <- vector(mode="list", length=length(df)) ## create a list, shouldn't it here also be length(df)-1? names(result) <- paste("chisq_df[[", 1:length(df), "]]_df[[", (1:length(df))+1, "]]", sep="") ## that way, your list is named, which is easier to remember what is ## what if you have lots of columns
for (i in 1:(length(df)-1)) {
result[[i]] <- chisq.test(table(df[[i]], df[[i+1]]))[1:3] ## each computation will be stored in a different element of the list
}

Is it what you're looking for?
HTH,
Ivan



Le 11/23/2010 03:11, wata...@post.com a écrit :

d<-read.table("D:\\Working\\Statics.txt")

df<- cbind("Q1", "Q2", "Q3", "Q4", "Q5", "Q5A", "Q5B", "Q5C", "Q5D", "Q5E", "Q5F", "Q5G", "Q6", "Q6A", "Q6B", "Q6C", "Q6D", 
"Q6E", "Q6F", "Q7", "Q8", "Q9")
#Than you can loop through them simply by doing:
result<- numeric(length(df))
for (i in 1:(length(df)-1)) {
  result<- chisq.test(table(df[[i]], df[[i+1]]))
}

and then this error comes out:

Error: unexpected '}' in "}"


and how can I redirect the output of the chi-square test to a file instead of 
console output?


        [[alternative HTML version deleted]]

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


--
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Museum
Abt. Säugetiere
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calan...@uni-hamburg.de

**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/1525_8_1.php

______________________________________________
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