Lors de la programmation dans Stata, je trouve souvent l'indice de boucle dans la programmation. Par exemple, je vais boucler sur une liste des variables nominalprice et RealPrice:Boucle sur les variables de chaîne dans R
local list = "nominalprice realprice"
foreach i of local list {
summarize `i'
twoway (scatter `i' time)
graph export "C:\TimePlot-`i'.png"
}
Ce tracera la série chronologique des prix nominaux et réels et exporter un graphique appelé Timeplot-nominalprice.png et un autre appelé TimePlot- realprice.png.
En R la méthode que je suis venu avec pour faire la même chose serait:
clist <- c("nominalprice", "realprice")
for (i in clist) {
e <- paste("png(\"c:/TimePlot-",i,".png\")", sep="")
eval(parse(text=e))
plot(time, eval(parse(text=i)))
dev.off()
}
Ce code R semble unintuitive et malpropre pour moi et je n'ai pas trouvé une bonne façon de faire genre de chose dans R encore. Peut-être que je ne pense pas au problème de la bonne façon? Pouvez-vous suggérer une meilleure façon de faire une boucle en utilisant des cordes?
Merci Jonathon. J'aime l'option get (i) et j'essaierai de travailler avec ça. Les données que j'utilisais étaient des données fictives qui pourraient donc être structurées dans une base de données. Qu'est-ce qui serait différent si vous utilisiez un dataframe? – aTron
Parce que c'est facile d'accès par chaîne. Supposons que vous ayez une trame de données 'df' avec une colonne nommée' nominalprice'. Ensuite, vous pouvez simplement écrire 'df [," nominalprice "]' pour obtenir cette colonne. –