Как разделить фрейм данных по количеству строк - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть набор данных с 8588 строками и 91 столбцом. Я хочу разделить его на два новых фрейма данных, но на основе заранее определенных номеров строк.

Пример

Первый фрейм данных

1 A
2 B
3 C
4 D
5 E
6 F
7 G
8 H
9 I
10 J

Второй фрейм данных содержит номер строки

4
7
5
1
9

Третий фрейм данных содержит номер строки

6
10
2
3
8

результат будет таким:

1-й новый фрейм данных

4 D
7 G
5 E
1 A
9 I

2-й новый фрейм данных

6 F
10 J
2 B
3 C
8 H

Вопрос в том, как это сделать? Спасибо

1 Ответ

0 голосов
/ 06 апреля 2020

Мы можем subset кадр данных на основе значений, а затем match и order.

df1 <- subset(df, V1 %in% c(4,7, 5,1,9))
df2 <- subset(df, V1 %in% c(6,10, 2,3,8))

df1 <- df1[order(match(df1$V1, c(4,7, 5,1,9))), ]
df1
#  V1 V2
#4  4  D
#7  7  G
#5  5  E
#1  1  A
#9  9  I

df2 <- df2[order(match(df2$V1, c(6,10, 2,3,8))), ]
df2
#   V1 V2
#6   6  F
#10 10  J
#2   2  B
#3   3  C
#8   8  H
...