R: Динамическое разделение фрейма данных - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть один столбец данных. Длина варьируется от 60 000 до 500 000 строк.

Я хотел бы разбить фрейм данных на более мелкие фреймы данных с 45 000 строк плюс дополнительный фрейм данных с оставшимися строками. Например, если мой начальный фрейм данных содержит 90 100 строк, результатом должно быть 3 фрейма данных - 2 с 45000 строк и 1 с 100 строками.

Я бы хотел иметь возможность впоследствии обрабатывать каждую из полученных данных кадры в a для l oop.

Есть ли способ сделать это в R?

Ответы [ 2 ]

3 голосов
/ 16 февраля 2020

Другое базовое решение R с использованием split + %/%

r <- split(df,seq(nrow(df))%/%45000)
1 голос
/ 16 февраля 2020

Мы можем использовать split, чтобы создать list из data.frame, разделив индекс группировки, созданный с помощью gl

lst1 <- split(df1,  as.integer(gl(nrow(df1), 45000, nrow(df1))))
length(lst1)
#[1] 3
sapply(lst1, nrow)
#     1     2     3 
# 45000 45000   100 

data

set.seed(24)
df1 <- data.frame(col1 = rnorm(90100), col2 = runif(90100), id = 1:90100)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...