У меня есть кадр данных с 1000 строк, и я хочу выполнить некоторую операцию на нем со 100 строками за раз. Итак, я пытаюсь выяснить, как использовать счетчик приращения числа строк и выбрать 100 строк за один раз, например от 1 до 100, затем от 101 до 200 ... uptil 1000 и выполнить операцию на каждом подмножестве, используя для цикла. Кто-нибудь может предложить, как это можно сделать, поскольку я не мог найти хороший метод.Выбор диапазона строк из кадра данных R
ответ
Ответ от @mrdwab велик, и показывает, как избежать цикл. Но если вы действительно должны использовать для цикла (пакет biglm бы один пример, где вы могли бы хотеть), то здесь один подход:
for(i in seq(1,1000,by=100)) {
myfun(df[ i:(i+99), ])
}
Если общее количество строк не является кратным размеру блока то вам может понадобиться нечто большее:
tmp <- seq(1, nrow(df), by=100)
tmp2 <- c(tail(tmp, -1)-1, nrow(df))
n <- length(tmp)
out <- numeric(n)
for(i in seq_along(tmp)) {
out[i] <- myfun(df[ tmp[i]:tmp2[i], ])
}
Простым способом было бы создать переменную группировки, а затем использовать split()
и lapply()
для выполнения любых операций, в которых вы нуждаетесь.
Ваша группировка может быть легко создана с использованием rep()
.
Вот пример:
set.seed(1)
demo = data.frame(A = sample(300, 50, replace=TRUE),
B = rnorm(50))
demo$groups = rep(1:5, each=10)
demo.split = split(demo, demo$groups)
lapply(demo.split, colMeans)
# $`1`
# A B groups
# 165.9000000 -0.1530186 1.0000000
#
# $`2`
# A B groups
# 168.2000000 0.1141589 2.0000000
#
# $`3`
# A B groups
# 126.0000000 0.1625241 3.0000000
#
# $`4`
# A B groups
# 159.4000000 0.3340555 4.0000000
#
# $`5`
# A B groups
# 181.8000000 0.0363812 5.0000000
Если вы предпочитаете не добавлять группы к источнику data.frame
, вы можете достичь того же эффекта, выполнив следующие действия:
groups = rep(1:5, each=10)
lapply(split(demo, groups), colMeans)
Конечно, замените colMeans
любой функцией, которую вы хотите.
Использование пример через data.frame
с 1000 строк, ваше rep()
заявление должно быть что-то вроде:
rep(1:10, each=100)
- 1. Выбор строк из кадра данных R
- 2. Выбор строк из кадра данных
- 3. R: выбор элементов из кадра данных
- 4. R строки вектор выбор из кадра данных
- 5. Выбор столбцов динамических таблиц кадра данных R
- 6. Выбор номера из кадра данных
- 7. Выбор наилучшего сочетания значений из кадра данных R
- 8. R петля anova и выбор имени кадра данных из списка
- 9. R считая вхождения аналогичных строк кадра данных
- 10. Выбор диапазона строк из записи ndarray
- 11. Удаление строк из кадра данных
- 12. Извлечение строк и столбцов из кадра данных в R
- 13. Rcpp: опрятный способ сравнения строк, полученных из кадра данных R?
- 14. График графика из разных строк кадра данных в R
- 15. Извлечь строки из кадра данных R на основе факторов (строк)
- 16. Как удалить дубликаты строк из кадра данных в R
- 17. Извлечение JSON данные из строк кадра R данных
- 18. Выбор диапазона почтовых индексов в R из большого набора данных
- 19. Выбор диапазона переменных в R
- 20. Выбор диапазона из последних 160 строк
- 21. R - выбор строк
- 22. R: Создание двоичных данных из кадра данных
- 23. выбор данных из строк данных
- 24. Случайная выборка из кадра данных в R
- 25. Изменение кадра данных в R
- 26. Выбор топ рейтинга из столбцов кадра данных
- 27. R выбор повторяющихся строк
- 28. Условные Подменит из кадра данных R
- 29. Выбор последовательных строк в кадре данных ... r
- 30. Выбор случайных фрагментов кадра данных