Предполагая, что у вас нет опыта программирования, и вы просто хотите знать, как использовать для l oop. Я создал очень простой фрейм данных и сделаю что-нибудь легко. Я хочу, чтобы сумма каждой строки в кадре данных (к счастью, у нас также есть семейство apply, чтобы сделать это просто).
df <- data.frame(x=c(1,4,2,6,7,1,8,9,1),
y=c(4,7,2,8,9,1,9,2,8))
Этот пример показан везде, что крайне неудовлетворительно.
for(i in 1:10){
print(i)
}
Распечатайте только пример суммы каждой строки.
for(i in 1:nrow(df)){
print(df$x[i]+df$y[i])
}
Эта часть часто ужасно объясняется везде (я не понимаю, почему? Возможно, я просто использовал неправильный поиск термины / ключевые слова?). К счастью, на Stack Exchange был хороший пример, который показал мне как. Итак, кредиты go кому-то еще. Тем не менее, эта часть довольно проста, но для кого-то, не имеющего опыта в моделировании, R или любом другом программировании, это может быть проблемой в заднице, чтобы понять. Чтобы сделать для l oop и сохранить результаты, вам нужно создать объект, который может хранить данные l oop.
Здесь просто для l oop, сохраняющего результаты в виде фрейм данных.
loopdf <- as.data.frame(matrix(ncol = 1, nrow = 0))
for(i in 1:nrow(df)){
loopdf[i,] <- df$x[i]+df$y[i]
}
loopdf
Здесь простое для l oop сохранение результатов в списке.
looplist <- list()
for(i in 1:nrow(df)){
looplist[[i]] <- df$x[i]+df$y[i]
}
do.call(rbind, looplist)
Здесь al oop объединение результатов в атомах c вектор.
loopvec <- NULL
for(i in 1:nrow(df)){
loopvec <- c(loopvec, df$x[i]+df$y[i])
}
loopvec
Здесь применяются l oop (две версии).
apply(df, 1, sum)
apply(df, 1, function(x), sum(x))