Quantcast
Channel: Active questions tagged r - Stack Overflow
Viewing all articles
Browse latest Browse all 201839

How can I run a script on multiple folders

$
0
0

I developed a script to do operations and graphics on temperature and precipitation files and forecasts. I have 3 stations on which I will have to do the same steps, here is a part of the script that changes the name of the station in the text file name and CSV my question is how to run the script on the 3 folders and save each number for each station at the same time

That the script:

library(tidyr)
library(readxl)
library(dplyr)
library(lubridate)
library(frost)
setwd("C:/Users/majd/Documents/laval")
REF_CNRM <- read.table("**LAVAL_CNRM_Aladin_REF_1950-2005.txt**",header=TRUE,dec=".",sep="", encoding="UTF-8")
summary(REF_CNRM)

colnames(REF_CNRM)[1] <-"date"
colnames(REF_CNRM)[4] <-"Tasmin"
colnames(REF_CNRM)[5] <-"Tasmax"
colnames(REF_CNRM)[6] <-"Pre"
colnames(REF_CNRM)[7] <-"Neige"


REF_CNRM$date <- as.Date(as.character(REF_CNRM$date), format = "%Y%m%d")
REF_CNRM$year <- year(ymd(REF_CNRM$date))
REF_CNRM$month <- month(ymd(REF_CNRM$date)) 
REF_CNRM$day <- day(ymd(REF_CNRM$date))
REF_CNRM<- REF_CNRM[,c(8,9,10,1,2,3,4,5,6,7)]
REF_CNRM <- REF_CNRM[,-4]

REF_CNRM = subset(REF_CNRM,REF_CNRM$year>1970)
REF_CNRM = subset(REF_CNRM,REF_CNRM$year<2006)
REF_CNRM = subset(REF_CNRM,REF_CNRM$month>3)
REF_CNRM = subset(REF_CNRM,REF_CNRM$month<10)
summary(REF_CNRM)
#convert to celecius

REF_CNRM$Tasmoy = (REF_CNRM$Tasmin+REF_CNRM$Tasmax)/2
Tasmoy <- convert.temperature(from="K", to="C",REF_CNRM$Tasmoy)
REF_CNRM <- cbind(REF_CNRM,Tasmoy)
REF_CNRM <- REF_CNRM[,-10]
CNRM = aggregate(REF_CNRM[,10],FUN=mean,by=list(REF_CNRM$year))

#precipitation moyenne annuelle 

CNRM_Pre = aggregate(REF_CNRM[,8],FUN=mean,by=list(REF_CNRM$year))


# DAta IPSL
REF_IPSL <- read.table("LAVAL_IPSL_WRF_REF_1971-2005.txt",header=TRUE,dec=".",sep="")
summary(REF_IPSL)

colnames(REF_IPSL)[1] <-"date"
colnames(REF_IPSL)[4] <-"Tasmin"
colnames(REF_IPSL)[5] <-"Tasmax"
colnames(REF_IPSL)[6] <-"Pre"
#colnames(REF_IPSL)[7] <-"Neige"

#Date 
REF_IPSL$date <- as.Date(as.character(REF_IPSL$date), format = "%Y%m%d")
REF_IPSL$year <- year(ymd(REF_IPSL$date))
REF_IPSL$month <- month(ymd(REF_IPSL$date)) 
REF_IPSL$day <- day(ymd(REF_IPSL$date))
REF_IPSL<- REF_IPSL[,c(7,8,9,1,2,3,4,5,6)]
REF_IPSL <- REF_IPSL[,-4]

REF_IPSL = subset(REF_IPSL,REF_IPSL$year>1970)
REF_IPSL = subset(REF_IPSL,REF_IPSL$year<2006)
REF_IPSL = subset(REF_IPSL,REF_IPSL$month>3)
REF_IPSL= subset(REF_IPSL,REF_IPSL$month<10)
summary(REF_IPSL)
#convert to celecius
REF_IPSL$Tasmoy=(REF_IPSL$Tasmin+REF_IPSL$Tasmax)/2
Tasmoy <- convert.temperature(from="K", to="C",REF_IPSL$Tasmoy)
REF_IPSL <- cbind(REF_IPSL,Tasmoy)
REF_IPSL <- REF_CNRM[,-9]
IPSL = aggregate(REF_IPSL[,9],FUN=mean,by=list(REF_IPSL$year))

#precipitation moyenne annuelle IPSL
IPSL_Pre = aggregate(REF_IPSL[,8],FUN=mean,by=list(REF_IPSL$year))


# Données d'observations Laval
obs <- read.table("Laval.csv",header=TRUE,sep=";",dec=",", skip=3)
summary(obs)
colnames(obs)[2] <-"an"
colnames(obs)[3] <-"mois"
colnames(obs)[5] <-"Tasmax"
colnames(obs)[6] <-"Tasmin"
colnames(obs)[7] <-"Tasmoy"
colnames(obs)[8] <-"Pre"
summary(obs)
obs = subset(obs,obs$an>1970)
obs = subset(obs,obs$an<2006)
obs = subset(obs,obs$mois>3)
obs = subset(obs,obs$mois<11)
summary(obs)
OBS = aggregate(obs[,7],FUN=mean,by=list(obs$an))

#precipitation mean  IPSL

obs_Pre = aggregate(obs[,8],FUN=mean,by=list(obs$an))


#merge temperature 

CNRM_IPSL = merge(CNRM,IPSL, by="Group.1")
CNRM_IPSL_obs=merge(CNRM_IPSL,OBS, by ="Group.1")
colnames(CNRM_IPSL_obs)[1] <-"an"
colnames(CNRM_IPSL_obs)[2] <-"CNRM"
colnames(CNRM_IPSL_obs)[3] <-"IPSL"
colnames(CNRM_IPSL_obs)[4] <-"OBS_laval"

CNRMIPSL <- reshape2::melt(CNRM_IPSL_obs, id.var='an')
library(ggplot2)
laval <- ggplot(CNRMIPSL, aes(x=an, y=value, col=variable)) + geom_line()+xlab('Années') +
  ylab('Température Moyenne (°C)') 
laval + scale_x_continuous(name="Années", limits=c(1988, 2006)) +
  scale_y_continuous(name="Température Moyenne (°C)", limits=c(12.5, 17))

ggsave("Laval_CNRM_IPSL.png", width = 11, height = 8)

I have 3 folders C: /Users/majd/Documents/laval C: /Users/majd/Documents/Paris C: /Users/majd/Documents/Toulouse

In the 3 folders I have the 3 files: for laval: LAVAL_CNRM_Aladin_REF_1950-2005.txt LAVAL_IPSL_WRF_REF_1971-2005.txt Laval.csv for Paris: PARIS _CNRM_Aladin_REF_1950-2005.txt .... For station 3 the sames files

How I can run the script for the 3 folders in the same times and save the figure using ggplot for the 3 stations in the same time

library(ggplot2)
laval <- ggplot(CNRMIPSL, aes(x=an, y=value, col=variable)) + geom_line()+xlab('Années') +
  ylab('Température Moyenne (°C)') 
laval + scale_x_continuous(name="Années", limits=c(1988, 2006)) +
  scale_y_continuous(name="Température Moyenne (°C)", limits=c(12.5, 17))

ggsave("Laval_CNRM_IPSL.png", width = 11, height = 8)

Viewing all articles
Browse latest Browse all 201839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>