Извлечение кадра данных в несколько подмножеств на основе индексов - PullRequest
0 голосов
/ 06 июля 2018

У меня есть датафрейм с большим количеством столбцов. Я хотел бы разделить фрейм данных по столбцам на основе начального индекса и конечного индекса. Эти значения индекса в настоящее время хранятся в векторе как таковые:

1 18 19 25 26 33 34 41 42 49 ...

После этого я хочу добавить первый фрейм данных (столбцы 1–18) ко всем остальным фреймам данных (не делая это вручную).

1 Ответ

0 голосов
/ 21 июля 2018

Один из подходов состоит в том, чтобы преобразовать ваш вектор разбиения в матрицу из 2 столбцов, а затем применить его к data.frame интересу.В результате вы получите список необходимых вам фреймов данных.

# Simulataed data frame with 100 columns
df <- as.data.frame(matrix(1:1000, ncol = 100))

# Splits vector
splits <- c(1, 18, 19, 25, 26, 33, 34, 41, 42, 49, 50, 100)

# Extract columns we need to add to the rest of split data frames
first <- splits[1:2]
rest <- splits[-(1:2)]

# create a matrix with two columns
splits_m <- matrix(rest, ncol = 2, byrow = TRUE)

# make list of data frame base on splits
dfl <- apply(splits_m, 2, function(x) df[, c(x[1]:x[2], first[1]:first[2])])

# access the first data.frame
dfl[[1]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...