#1/9c airquality[17, ][,1] airquality[17,1] airquality$Ozone[17] airquality[17,]$Ozone #1/9d airquality[!is.na(airquality$Ozone),] nrow(airquality[!is.na(airquality$Ozone),]) sum(!is.na(airquality$Ozone)) #1/9e jo_ozone <- airquality[!is.na(airquality$Ozone),] mean(jo_ozone$Solar.R, na.rm = TRUE) #1/10/b max_Solar.R <- max(airquality$Solar.R, na.rm = TRUE) subset(airquality, airquality$Solar.R == max_Solar.R, select = c(Month, Day)) #2/1d,e adat <- read.csv("001.csv") nrow(adat) ncol(adat) str(adat) head(adat) #2/1f jo_sorok <- complete.cases(adat) nrow(adat[jo_sorok, ]) #2/2 weboldal <- readLines("http://www.cs.bme.hu/szeminarium") length(weboldal) weboldal[95] #2/3 f<- function(p1, p2 = 2){p1*(p2-3)} #2/4 #a sorvalasztas <- function(sorszam){ adat <- read.csv("001.csv") adat[sorszam,] } #b sorvalasztas <- function(sorszam){ adat <- read.csv("001.csv") sordb<- nrow(adat) if (sorszam > sordb){ stop("nincs ennyi sor") } else { adat[sorszam,]}} sorvalasztas <- function(sorszam){ adat <- read.csv("001.csv") sordb<- nrow(adat) if (sorszam > sordb){ print("nincs ennyi sor") } else { adat[sorszam,]}} #c sorvalasztas <- function(sorszam, oszlop = NULL){ adat <- read.csv("001.csv") sordb<- nrow(adat) if (sorszam > sordb){ stop("nincs ennyi sor") } if (is.null(oszlop)){ adat[sorszam,] } else if(oszlop == 2 | oszlop == 3){ adat[sorszam, oszlop] } else{ stop("Hibas oszlop") } } # lehetne is.null helyett missing is sorvalasztas <- function(sorszam, oszlop = NULL){ adat <- read.csv("001.csv") sordb<- nrow(adat) if (sorszam > sordb){ print("nincs ennyi sor") } if (is.null(oszlop)){ adat[sorszam,] } else if(oszlop == 2 | oszlop == 3){ adat[sorszam, oszlop] } else{ print("Hibas oszlop") } } #5 #a sorrend <- function(rank){ adat<- read.csv("001.csv") sorrend_sulfate <- order(adat$sulfate, adat$nitrate, adat$Date, na.last = NA) adat1 <- adat[sorrend_sulfate, ] adat1[rank, ] } #b sorrend <- function(rank){ adat<- read.csv("001.csv") sorrend_sulfate <- order(adat$sulfate, adat$nitrate, adat$Date, na.last = NA) db <- length(sorrend_sulfate) adat1 <- adat[sorrend_sulfate, ] if(rank> db){stop("Tul nagy sorszam")} adat1[rank, ] } #6 fibonacci <- function(n){ f_small <- 0 f_large <- 1 for (i in 1:n) {f_small_new <- f_large f_large <- f_small + f_large f_small <- f_small_new } f_small } #7 #a,b adat2 <- iris iris_split <- split(adat2, adat2$Species) lapply(iris_split, function(x) colMeans(x[,1:4], na.rm =TRUE)) #c lapply(iris_split, function(x) apply(x[,1:4],2, sd, na.rm =TRUE)) #vagy ami ugyanaz sd_oszlop <- function(x){ apply(x[,1:4], 2, sd, na.rm =TRUE) } sapply(iris_split, sd_oszlop) #8 #a lapply(1:4, function(x) quantile(adat2[, x], probs = c(0.1, 0.25, 0.75, 0.9))) #vagy mashogy es igy szebb is apply(iris[,1:4], 2, quantile, probs =c(0.1, 0.25, 0.75, 0.9) ) #b perc <- function(x){ apply(x[,1:4], 2, quantile, probs =c(0.1, 0.25, 0.75, 0.9) ) } lapply(iris_split, perc)