On Nov 3, 2010, at 5:03 PM, Matevž Pavlič wrote:

Hi,

Thanks for the help and the manuals. Will come very handy i am sure.

But regarding the code i don't hink this is what i want....basically i would like to repeat bellow code :

w1<-table(lit$W1)
w1<-as.data.frame(w1)

It appears you are not reading for meaning. Burns has advised you how to construct column names and use them in your initial steps. The `$` function is quite limited in comparison to `[[` , so he was showing you a method that would be more effective. BTW the as.data.frame step is unnecessary, since the first thing write.table does is coerce an object to a data.frame. The "write.table" name is misleading. It should be "write.data.frame". You cannot really write tables with write.table.

You would also use:

 file=paste(vari, "csv", sep=".") as the file argument to write.table

write.table(w1,file="w1.csv",sep=";",row.names=T, dec=".")

What are these next actions supposed to do after the file is written? Are you trying to store a group of related "w" objects that will later be indexed in sequence? If so, then a list would make more sense.

--
David.

w1<- w1[order(w1$Freq, decreasing=TRUE),] w1<-head(w1, 20)

20 times, where W1-20 (capital letters) are the fields in a data.frame called "lit" and w1-20 are the data.frames being created.

Hope that explains it better,

m

-----Original Message-----
From: Patrick Burns [mailto:pbu...@pburns.seanet.com]
Subject: Re: [R] Loop

If I understand properly, you'll want
something like:

lit[["w2"]]

instead of

lit$w2

more accurately:

for(i in 1:20) {
vari <- paste("w", i)
lit[[vari]]

...
}

The two documents mentioned in my
signature may help you.

On 03/11/2010 20:23, Matevž Pavlič wrote:
Hi all,

I managed to do what i want (with the great help of thi mailing list) manually . Now i would like to automate it. I would probably need a for loop for to help me with this...but of course I have no idea how to do that in R. Bellow is the code that i would like to be replicated for a number of times (let say 20). I would like to achieve that w1 would change to w2, w3, w4 ... up to w20 and by that create 20 data.frames that I would than bind together with cbind.

(i did it like shown bellow -manually)

w1<-table(lit$W1)
w1<-as.data.frame(w1)
write.table(w1,file="w1.csv",sep=";",row.names=T, dec=".")
w1<- w1[order(w1$Freq, decreasing=TRUE),]
w1<-head(w1, 20)

w2<-table(lit$W2)

w2<-as.data.frame(w2)

write.table(w2,file="w2.csv",sep=";",row.names=T, dec=".")

w2<- w2[order(w2$Freq, decreasing=TRUE),]

w2<-head(w2, 20)
.
.
.

Thanks for the help,m



David Winsemius, MD
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