--- title: "class_demo" author: "Muhammad" date: "March 11, 2019" output: html_document --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` Write a function which takes a vector as input and replace every even position element by -1
Input : c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
Output : [0, -1, 2, -1, 4, -1, 6, -1, 8, -1] ```{r} a <- seq(0,9) evenReplace <- function(a){ a[seq(2,length(a), by= 2)] <- -1 return(a) } evenReplace(a) ``` Write a function which takes a vector as input and changes all NA valuse by 0
Input : [1, 2, 3, 4, NA, 5, NA, 6]
Output : [1, 2, 3, 4, 0, 5, 0, 6] ```{r} v <- c(1, 2, 3, 4, NA, 5, NA, 6) na2z <- function(v){ v[is.na(v)] <- 0 return(v) } na2z(v) ``` Write a function which takes a vector as input and all non NA values
Input : [1, 2, 3, 4, NA, 5, NA, 6]
Output : [1, 2, 3, 4, 5, 6] ```{r} v <- c(1, 2, 3, 4, NA, 5, NA, 6) rmNa <- function(v){ v <- v[!is.na(v)] return(v) } rmNa(v) ``` Generate the list ['z','z',1,2,3,4,5,8,10,12] ```{r} a <- c(rep('z',2),seq(1,5),seq(8,12,by = 2)) print(a) ``` Write a function to reverse a vetor ```{r} u <- seq(0,9) reverse <- function(u){ return(u[seq(length(u),1)]) } reverse(u) ``` Write a function to recognize palindrome ```{r} v <- c("a","b","b","a") u <- c("a","b","a","a") plain <- function(v){ z <- v[seq(length(v),1)] if (sum(v == z) == length(v)){return(TRUE)} else(return(FALSE)) } plain(v) plain(u) ``` Importing weather data ```{r} d <- read.csv('Indianapolis-Weather-Station-USW00093819-1950-2018.csv', na.strings = c("M","T")) d$year <- substr(d$Date,1,4) yearSummary <- data.frame(year = unique(d$year)) ``` Top 10 average coldest years (arrange years based on average min temperature) ```{r} yearSummary$tmin <- tapply(d$TMIN,d$year,mean) head(yearSummary[order(yearSummary$tmin),c("year", "tmin")], n=10) ``` Top 10 average warmest years (arrange years based on average max temperature) ```{r} yearSummary$tmax <- tapply(d$TMAX, d$year, mean) head(yearSummary[order(yearSummary$tmax, decreasing = TRUE), c("year", "tmax")], n=10) ``` Effect of precipitation on min Temperature ```{r} yearSummary$minT <- tapply(d$TMIN, d$year, function(x){min(x,na.rm = TRUE)}) yearSummary$prcpAtMinT <- tapply(d$TMIN, d$year, function(x){d$PRCP[which.min(x)]}) plot(yearSummary$minT, yearSummary$prcpAtMinT, pch= 8, xlab = "Min Temperature", ylab = "Precipitation") ```