Cara membagi bingkai data di r (dengan contoh)


Anda dapat menggunakan salah satu dari tiga metode berikut untuk membagi bingkai data menjadi beberapa blok data yang lebih kecil di R:

Metode 1: Pisahkan bingkai data secara manual berdasarkan nilai baris

 #define first n rows to include in first data frame
n <- 4

#split data frame into two smaller data frames
df1 <- df[row. names (df) %in% 1:n, ]
df2 <- df[row. names (df) %in% (n+1):nrow(df), ]

Metode 2: Bagilah bingkai data menjadi n bingkai data dengan ukuran yang sama

 #define number of data frames to split into
n <- 3

#split data frame into n equal-sized data frames
split(df, factor(sort(rank(row. names (df)) %% n)))

Metode 3: Pisahkan bingkai data berdasarkan nilai kolom

 #split data frame based on particular column value
df1 <- df[df$column_name == 0, ]
df2 <- df[df$column_name != 0, ]

Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan kerangka data berikut:

 #create data frame
df <- data. frame (ID=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12),
                 sales=c(7, 8, 8, 7, 9, 7, 8, 9, 3, 3, 14, 10),
                 leads=c(0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0))

#view data frame
df

   Sales lead ID
1 1 7 0
2 2 8 0
3 3 8 1
4 4 7 1
5 5 9 0
6 6 7 1
7 7 8 1
8 8 9 0
9 9 3 1
10 10 3 0
11 11 14 1
12 12 10 0

Metode 1: Pisahkan bingkai data secara manual berdasarkan nilai baris

Kode berikut menunjukkan cara membagi bingkai data menjadi dua blok data yang lebih kecil, yang pertama berisi baris 1 hingga 4 dan yang kedua berisi baris 5 hingga baris terakhir:

 #define row to split on
n <- 4

#split into two data frames
df1 <- df[row. names (df) %in% 1:n, ]
df2 <- df[row. names (df) %in% (n+1):nrow(df), ]

#view resulting data frames
df1

  Sales lead ID
1 1 7 0
2 2 8 0
3 3 8 1
4 4 7 1

df2

   Sales lead ID
5 5 9 0
6 6 7 1
7 7 8 1
8 8 9 0
9 9 3 1
10 10 3 0
11 11 14 1
12 12 10 0

Metode 2: Bagilah bingkai data menjadi n bingkai data dengan ukuran yang sama

Kode berikut menunjukkan cara membagi bingkai data menjadi n bingkai data dengan ukuran yang sama:

 #define number of data frames to split into
n <- 3

#split data frame into n equal-sized data frames
split(df, factor(sort(rank(row. names (df)) %% n)))

$`0`
  Sales lead ID
1 1 7 0
2 2 8 0
3 3 8 1
4 4 7 1

$`1`
  Sales lead ID
5 5 9 0
6 6 7 1
7 7 8 1
8 8 9 0

$`2`
   Sales lead ID
9 9 3 1
10 10 3 0
11 11 14 1
12 12 10 0

Hasilnya adalah tiga bingkai data dengan ukuran yang sama.

Metode 3: Pisahkan bingkai data berdasarkan nilai kolom

Kode berikut menunjukkan cara membagi bingkai data menjadi dua bingkai data berdasarkan nilai kolom tertentu:

 #split data frame based on particular column value
df1 <- df[df$leads == 0, ]
df2 <- df[df$leads != 0, ]

#view resulting data frames
df1

   Sales lead ID
1 1 7 0
2 2 8 0
5 5 9 0
8 8 9 0
10 10 3 0
12 12 10 0

df2

   Sales lead ID
3 3 8 1
4 4 7 1
6 6 7 1
7 7 8 1
9 9 3 1
11 11 14 1

Perhatikan bahwa df1 berisi semua baris dengan “prospek” sama dengan nol dalam bingkai data asli dan df2 berisi semua baris dengan “prospek” sama dengan satu dalam bingkai data asli.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di R:

Cara menggabungkan beberapa frame data di R
Cara menumpuk kolom bingkai data di R
Bagaimana cara menambahkan kolom ke bingkai data berdasarkan kolom lain di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *