Kodas
writeLines(c("id;kaina;kiekis", "1;12,5;3", "2;8,4;5", "3;NA;2"), "prekes.csv")Šiame skyriuje pateikiama po tris užduotis kiekvienai iš pirmųjų septynių temų. Užduotys skirtos savarankiškai pasitikrinti žinias ir pasirengti kontroliniam darbui. Žyma „Kontrolinio tipo“ pažymėtos užduotys savo struktūra panašios į kontrolinio darbo užduotis, tačiau jų duomenys arba reikalavimai pakeisti.
Trumpai pakomentuokite gautus atsakymus. Jei nenurodyta kitaip, užduotį galima spręsti keliais būdais. Sprendimams pakanka standartinių R paketų. Kiekviena užduotis yra savarankiška: jos kodas nepriklauso nuo kitų užduočių.
Kontrolinio tipo. Naudokite standartinį rinkinį USArrests.
Assault reikšmių. Elementų vardai turi sutapti su atitinkamais lentelės eilučių vardais.Murder, UrbanPop, išlaikydami matricos struktūrą.seq() sukurkite seką nuo 4 iki 48, kurios žingsnis lygus 4.A, B, C, D.m * m ir m %*% t(m).studentai su stulpeliais id = 1:5, grupe = c("B", "A", "B", "A", "B"), balas = c(6, 9, 7, 10, 8).grupe paverskite faktoriumi su lygių tvarka A, B.islaike, kuris lygus TRUE, kai balas >= 7.balas kaip vektorių ir kaip vieno stulpelio lentelę. Patikrinkite abiejų rezultatų klases.matavimai su stulpeliais id = 1:4, ilgis = c(12.5, 10.2, NA, 14.8), grupe = c("A", "B", "A", "B").matavimai.csv: stulpelių skirtukas turi būti kablelis, dešimtainis skirtukas – taškas, eilučių vardų neįrašykite.Failo turinys pateiktas žemiau. Pirmiausia sukurkite jį nurodytu kodu.
writeLines(c("id;kaina;kiekis", "1;12,5;3", "2;8,4;5", "3;NA;2"), "prekes.csv")prekes.csv naudodami read.table(). Pirmoji eilutė yra antraštė, stulpeliai atskirti kabliataškiais, dešimtainis skirtukas – kablelis.kaina tipą ir praleistų reikšmių skaičių.prekes.tsv, kuriame stulpeliai atskirti tabuliacija, o dešimtainis skirtukas yra taškas. Eilučių vardų neįrašykite.rinkinys, turintį elementus duomenys = head(iris, 6) ir pastaba = "Pirmosios šešios eilutės".rinkinys.rds.atkurta. Patikrinkite, ar pradinis ir atkurtas objektai visiškai sutampa.Kontrolinio tipo. Naudokite airquality.
Ozone ir Solar.R reikšmės. Kitų stulpelių NA neturi lemti atrankos.vejuota, kuris lygus TRUE, kai Wind >= 10.Ozone > 50. Palikite stulpelius Month, Day, Ozone, Wind.Ozone mažėjimo tvarka, o sutampant reikšmėms – pagal Wind didėjimo tvarka.Duotas vektorius:
x <- c(4, NA, 7, 4, 2, 7, 9, NA, 2, 5)NA neįtraukite.c(2, 5, 9).studentai <- data.frame(id = c(1, 2, 3, 4), vardas = c("Asta", "Mantas", "Ieva", "Tomas"))
balai <- data.frame(studento_id = c(3, 1, 5), balas = c(9, 8, 10))studentai įrašai.cbind() pagal eilučių poziciją čia netinka.Kontrolinio tipo. Naudokite vektorių rivers.
for ciklą suskaičiuokite upes, kurių ilgis griežtai didesnis nei 800 mylių. Skaitiklį prieš ciklą prilyginkite nuliui.if-else išveskite vieną pranešimą: „Daug ilgų upių“, kai jų bent 20; „Vidutiniškai ilgų upių“, kai jų nuo 10 iki 19 imtinai; „Mažai ilgų upių“ – kitu atveju.while
Kontrolinio tipo. Duotos dienos išlaidos:
islaidos <- c(18, 24, 15, 32, 20, 14)
biudzetas <- 100while nustatykite, kiek pirmųjų iš eilės einančių dienų galima apmokėti neviršijant biudžeto. Jei įtraukus kitą dieną suma viršytų biudžetą, jos ir visų vėlesnių dienų neįtraukite. Lygybė biudžetui leidžiama.balai <- c(4, 8, NA, 10, 6, 9)ifelse() sudarykite vektorių: „Išlaikyta“, kai balas bent 5, ir „Neišlaikyta“ kitu atveju. Praleistam balui palikite NA.for peržiūrėkite balus nuo pradžios. Praleistą balą praleiskite su next. Radę pirmą balą, ne mažesnį nei 9, išsaugokite jo poziciją ir nutraukite ciklą su break.Kontrolinio tipo. Sukurkite funkciją vektoriaus_santrauka(x, na_rm = FALSE).
x ir vieną loginę reikšmę na_rm. Netinkamo tipo argumentams naudokite stop() arba stopifnot().n – pradinis ilgis, n_na – praleistų reikšmių skaičius, vidurkis, mediana ir sd. na_rm turi valdyti tik šių trijų charakteristikų skaičiavimą.c(2, 4, NA, 8) abiem na_rm atvejais.sapply() pritaikykite ją iris pirmiesiems keturiems stulpeliams. Gautą matricą paverskite duomenų lentele ir eksportuokite į iris_santrauka.csv. Charakteristikų vardus išsaugokite atskiru stulpeliu.Kontrolinio tipo. Naudokite airquality.
tapply() apskaičiuokite Ozone vidurkį kiekvieną mėnesį (Month), skaičiuodami praleistas reikšmes pašalinkite.aggregate() apskaičiuokite Wind minimumą kiekvieną mėnesį.tapply() suskaičiuokite kiekvieno mėnesio dienas, kuriomis Temp >= 90. Naudokite visas pradines eilutes; Ozone praleistos reikšmės šiam skaičiavimui nesvarbios.Sukurkite funkciją virs_ribos(x, riba = 0).
x turi būti skaitinis vektorius be praleistų ar begalinių reikšmių, o riba – vienas baigtinis skaičius. Netinkamą įvestį atmeskite.reiksmes – visos reikšmės, griežtai didesnės už ribą, pozicijos – jų pozicijos pradiniame vektoriuje, kiekis – tokių reikšmių skaičius.c(-2, 0, 3, 7) naudodami numatytą ribą ir ribą 5. Patikrinkite atvejį, kai nė viena reikšmė netinka, ir tuščią numeric(0).lapply() pritaikykite funkciją sąrašo list(A = c(-1, 4, 6), B = c(0, 2)) elementams, kai riba lygi 3. Paaiškinkite rezultato struktūrą.