Овладейте цикъла for, за да рационализирате сложни изчисления и други повтарящи се операции.

Циклите са основна структура в програмирането, която взема блок от код и го изпълнява многократно. Циклите For са един от видовете цикли, които почти всички езици съдържат. R's for циклите са неразделна част от анализа на данни.

Те служат за различни цели, от форматиране на изход до извършване на изчисления върху големи набори от данни. Използването на for цикли в R прави анализа на данни по-лесен за извършване.

R's Basic for Loop

Цикълът for на езика R функционира подобно на стандарта за цикли, намерени в Go и повечето други езици за програмиране. При дадена начална точка, той ще изпълни съдържащия се в нея код определен брой пъти.

Броячът съдържа итерацията, на която цикълът е в момента, и можете да получите достъп до него от свързания кодов блок. Циклите могат да се изпълняват за фиксиран брой итерации или за общата дължина на масив, вектор или списък.

Фиксирани итерационни цикли

Фиксираните итерационни цикли в R приемат следната форма:

instagram viewer
зав1:10) {
печат (x)
}

X в цикъла е променливата, която ще съхранява итерацията на цикъла.

След ключовата дума „in“ са началната и крайната точка на цикъла. Цикълът ще започне своя итератор от първото число.

След всяко изпълнение на кода в цикъла, той ще проверява дали итераторът е равен на числото след двоеточието.

Ако е така, изпълнението на кода ще продължи след цикъла. Ако не е, итераторът ще се увеличи с 1 и кодовият блок в скобите ще се изпълнява отново.

За цикли върху масиви, списъци и вектори

Точно като преглеждане на речник в Python, можете да итерирате подходящи структури от данни в R, като използвате for цикъла. Можете да използвате всяка итерируема структура от данни след ключовата дума „in“, вместо фиксирана начална и крайна точка.

Зациклянето по този начин ще промени поведението на кода. Тук цикълът ще функционира като foreach цикъл от езици като C#:

служители "Бен", "Джейн", "Сузи", "Джош", "Карол")

зав служители) {
печат (x)
}

Сега, вместо x да държи текущата итерация на цикъла, той ще държи обекта от масива или списъка, в който цикълът е в момента. След завършване на всеки цикъл, ако има повече елементи в списъка, масива или вектора, x ще бъде зададен на следващия елемент. Ако няма повече елементи, тогава изпълнението ще продължи с кода след цикъла.

Примитивната функция c и циклите for

В допълнение към вече попълнените структури от данни, R може да състави нова в декларацията на for цикъла. За да направите това, използвайте функцията c, за да комбинирате множество елементи в нов вектор.

Можете да опростите примера по-горе, като използвате този метод:

зав ° С("Бен", "Джейн", "Сузи", "Джош", "Карол")) {
печат (x)
}

Имайте предвид, че изходът е същият като преди:

Изявления за скок на R

Два оператора ви позволяват да пропускате итерациите на цикъла: break и next. Те постигат това по различни начини. Трябва да сте сигурни, че знаете разликата между двете.

Ключовата дума за прекъсване

Когато един цикъл срещне оператор за прекъсване вътре в себе си, той незабавно затваря цикъла. Тъй като програмата излиза от цикъла, след като удари ключовата дума break, тя няма да изпълни отново останалия код:

дни "понеделник", "вторник", "сряда", "четвъртък", "петък", "събота",
"неделя")

зав дни) {
ако (x == "събота") {
прекъсвам
}

печат (x)
}

Горният цикъл ще отпечата всички делнични дни, но нито един от уикендите.

Следващата ключова дума

Ключовата дума next също пропуска итерация, но за разлика от break, next не затваря цикъла веднага. Цикълът, който остава отворен, означава, че всеки допълнителен код в рамките на текущия цикъл няма да се изпълнява, но следващата итерация ще продължи, както е планирано:

дни "понеделник", "вторник", "сряда", "четвъртък", "петък", "събота",
"неделя")

зав дни) {
ако (x == "събота") {
следващия
}

печат (x)
}

Този цикъл ще извежда всеки делничен ден и неделя, но няма да отпечатва събота.

Пример за цикли в R

Има голямо разнообразие от ситуации, в които for циклите са полезни в R. Те могат да бъдат чудесен начин за извършване на повтарящи се изчисления, като добавяне на числа, за да получите обща сума:

поръчки 23.4, 699.8, 1042.0)
общо 0.0

за (поръчка в поръчки) {
общо }

котка("общата сума е $", обща сума, "\н")

Този пример ще добави обща сума на поръчката от всяка отделна поръчка в списък към общата сума.

Като алтернатива, for цикъл може да ви помогне бързо и лесно да изведете големи количества добре форматирани данни:

day_totals 567.82, 364.72, 762.81, 354.99, 622.87)

за (ден в1:дължина (ден_общо)) {
котка("Ден #", ден, ": $", day_totals[ден],"\н")
ден 1
}

Можете да използвате for цикъл, за да отпечатате всеки ден от седмицата и общите продажби за този конкретен ден.

Можете да използвате for цикъл, за да изчислите резултатите и да ги направите достъпни за код извън for цикъла, за да получите разнообразна информация:

тестови_резултати 67, 89, 72, 44)
общ_резултат 0
брой_тестове 0

за (резултат в резултати от тест) {
score_total брой_тестове 1
}

среден_резултат печат (среден_резултат)

Горният цикъл ще изчисли средния резултат, постигнат от учениците на тест.

Всичко, което трябва да знаете за R's for Loops

Важно е да се научите как да изпълнявате определен брой цикли или да итерирате върху набор от данни без фиксирана дължина.

Независимо дали трябва да извършите повтарящи се изчисления върху масив, да отпечатате всеки елемент в списък или да покажете голям пакет от данни в четима форма, R's for цикълът може да ви помогне.

Разбирането на основните принципи зад циклите for е ценно умение, което трябва да имате в арсенала си и овладяването му може да ви помогне да пишете прост, лесен за четене код.