Tout d'abord, Jonathan point sur la vectorisation est correct. Si votre getWellID() la fonction est vectorisé, alors vous pouvez passer la boucle et il suffit d'utiliser le chat ou écrire.csv:
write.csv(data.frame(wellid=getWellID(well$name, well$plate),
value1=well$value1, value2=well$value2), file=outputFile)
Si getWellID() n'est pas vectorisé, puis Jonathan recommandation d'utilisation de la by
ou knguyen proposition de la apply
devrait fonctionner.
Sinon, si vous voulez vraiment utiliser for
, vous pouvez faire quelque chose comme ceci:
for(i in 1:nrow(dataFrame)) {
row <- dataFrame[i,]
# do stuff with row
}
Vous pouvez aussi essayer d'utiliser l' foreach
paquet, bien qu'il exige de vous familiariser avec cette syntaxe. Voici un exemple simple:
library(foreach)
d <- data.frame(x=1:10, y=rnorm(10))
s <- foreach(d=iter(d, by='row'), .combine=rbind) %dopar% d
Une dernière possibilité est d'utiliser une fonction de l' plyr
paquet, auquel cas la convention sera très similaire à l'application de fonction.
library(plyr)
ddply(dataFrame, .(x), function(x) { # do stuff })