Разбиение фрейма данных на N подмножеств с равным количеством столбцов - PullRequest
1 голос
/ 02 апреля 2019

Как я могу разделить мой фрейм данных, который имеет 250 столбцов на 5 подмножеств по 50 столбцов в каждом, и назначить их в 5 различных переменных?

Я пробовал это

df2 <- split(df, sample(1:5, ncol(df), replace=T))

Ноэто делится только на количество строк, но не на количество столбцов

And I want something like this
ncol(df2_1) = 50
ncol(df2_2) = 50
ncol(df2_3) = 50
ncol(df2_4) = 50
ncol(df2_5) = 50

И они должны включать независимые столбцы.

1 Ответ

0 голосов
/ 02 апреля 2019

Используя комментарии @markus, чтобы использовать split.default, мы можем изменить исходный код и изменить выборку, чтобы мы получили ровно 50 в каждом подмножестве,

Создание фиктивных данных,

df <- data.frame(matrix(1:250, ncol = 250))

Затем разделение, (мы разделяем этот путь из-за этого , на который указывает @markus, это более безопасная / надежная версия)

df2 <- lapply(split.data.frame(t(df), sample(rep(1:5, ncol(df)/5))), t)

Менее надежный, но более простой вариант:

df2 <- split.default(df, sample(rep(1:5, ncol(df)/5)))

дает нам,

> ncol(df2$`1`)
[1] 50
> ncol(df2$`2`)
[1] 50
> ncol(df2$`3`)
[1] 50
> ncol(df2$`4`)
[1] 50
> ncol(df2$`5`)
[1] 50
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...