За Loop in R с примери за списък и матрица

Съдържание:

Anonim

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

В този урок ще научим,

  • За синтаксис на цикъла и примери
  • За Loop over a list
  • За Loop over a matrix

За синтаксис на цикъла и примери

For (i in vector) {Exp}

Тук,

R ще се завърти над всички променливи във вектора и ще направи изчислението, записано в exp.

Нека да видим няколко примера.

Пример 1 : Прелистваме всички елементи на вектор и отпечатваме текущата стойност.

# Create fruit vectorfruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')# Create the for statementfor ( i in fruit){print(i)}

Изход:

## [1] "Apple"## [1] "Orange"## [1] "Passion fruit"## [1] "Banana"

Пример 2 : създава нелинейна функция, като използва полинома на x между 1 и 4 и я съхраняваме в списък

# Create an empty listlist <- c()# Create a for statement to populate the listfor (i in seq(1, 4, by=1)) {list[[i]] <- i*i}print(list)

Изход:

## [1] 1 4 9 16 

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

За Loop over a list

Циклирането върху списък е също толкова лесно и удобно, колкото и циклирането върху вектор. Да видим пример

# Create a list with three vectorsfruit <- list(Basket = c('Apple', 'Orange', 'Passion fruit', 'Banana'),Money = c(10, 12, 15), purchase = FALSE)for (p in fruit){print(p)}

Изход:

## [1] "Apple" "Orange" "Passion fruit" "Banana"## [1] 10 12 15## [1] FALSE

За Loop over a matrix

Матрицата има двумерни, редове и колони. За да итерираме над матрица, трябва да дефинираме две за цикъл, а именно една за редовете и друга за колоната.

# Create a matrixmat <- matrix(data = seq(10, 20, by=1), nrow = 6, ncol =2)# Create the loop with r and c to iterate over the matrixfor (r in 1:nrow(mat))for (c in 1:ncol(mat))print(paste("Row", r, "and column",c, "have values of", mat[r,c]))

Изход:

## [1] "Row 1 and column 1 have values of 10"## [1] "Row 1 and column 2 have values of 16"## [1] "Row 2 and column 1 have values of 11"## [1] "Row 2 and column 2 have values of 17"## [1] "Row 3 and column 1 have values of 12"## [1] "Row 3 and column 2 have values of 18"## [1] "Row 4 and column 1 have values of 13"## [1] "Row 4 and column 2 have values of 19"## [1] "Row 5 and column 1 have values of 14"## [1] "Row 5 and column 2 have values of 20"## [1] "Row 6 and column 1 have values of 15"## [1] "Row 6 and column 2 have values of 10"