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