Re: [R] how to loop through variables in R?
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.
[R] how to loop through variables in R?
After importing a table with M variables and N records, I'd like to calculate chi-square statistics, say, between N1, N2; N1, N3, ..., N1, Ni, and then N2, N3, ... N2, Ni, ..., Ni-1, Ni. Two loops should be ok but the manual online help don't show a systematic way to do so but instead show hard-code examples so users have to type in the names themselves one by one... -- View this message in context: http://r.789695.n4.nabble.com/how-to-loop-through-variables-in-R-tp3053214p3053214.html Sent from the R help mailing list archive at Nabble.com. __ 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.
Re: [R] how to loop through variables in R?
-Original Message- From: jas4710 wata...@post.com To: r-help@r-project.org Sent: Mon, Nov 22, 2010 4:11 pm Subject: [R] how to loop through variables in R? After importing a table with M variables and N records, I'd like to calculate chi-square statistics, say, between N1, N2; N1, N3, ..., N1, Ni, and then N2, N3, ... N2, Ni, ..., Ni-1, Ni. Two loops should be ok but the manual online help don't show a systematic way to do so but instead show hard-code examples so users have to type in the names themselves one by one... -- Sorry for typo. It should be N variables and M records. Thank you very much. [[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.
Re: [R] how to loop through variables in R?
wata...@post.com wrote: -Original Message- From: jas4710 wata...@post.com To: r-help@r-project.org Sent: Mon, Nov 22, 2010 4:11 pm Subject: [R] how to loop through variables in R? After importing a table with M variables and N records, I'd like to calculate chi-square statistics, say, between N1, N2; N1, N3, ..., N1, Ni, and then N2, N3, ... N2, Ni, ..., Ni-1, Ni. Two loops should be ok but the manual online help don't show a systematic way to do so but instead show hard-code examples so users have to type in the names themselves one by one... Sorry for typo. It should be N variables and M records. Thank you very much. Assuming you are working with a data frame df, and your variable with the name of a column in it is col1, you should be able to extract that column as a vector using df[[col1]]. And yes, the manual does describe this notation. __ 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.
Re: [R] how to loop through variables in R?
-Original Message- From: Yuliya Matveyeva yuliya.rm...@gmail.com To: wata...@post.com Sent: Mon, Nov 22, 2010 4:32 pm Subject: Re: [R] how to loop through variables in R? If you want to have a name-specific loop. Assign names to your variables after inserting them into the data.frame like that: colnames(df) - c(var1,var23,var456,var44,...) for (nam in colnames(df)) { myfunction(df[[nam]]) } Data.frames support access by names. Unfortunately, in this sense I have to type in 1000 times... isn't there any function that allows retrieving and assigning all columns automatically? read.table in the R intro manual just brief says it can read a table but then there's no follow up about how to access the data [[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.
Re: [R] how to loop through variables in R?
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.