Bagaimana untuk tambah garis baru di data.frame dengan memasukkan jumlah keseluruhan atau Total. Cara yang ditunjukkan di sini ialah dengan menggunakan pakej data.table. Fungsi rbind atau rbindlist boleh digunakan, tetapi cara rbindlist melalui pakej data.table lebih cepat.
library(data.table)
df <- data.table(v1 = letters[1:10], v2 = 1:10)
Contoh data
head(df, n=4)
v1 v2
1: a 1
2: b 2
3: c 3
4: d 4
Cara yang paling singkat untuk meletakkan Jumlah di bawah data.frame ialah seperti begini:
## cara rbindlist
dfj <- rbindlist(list(df, list("Jumlah", dim(df)[1])))
## Masukkan jumlah keseluruhan
dfjs <- rbindlist(list(df, list("Jumlah semua", sum(df$v2))))
## cara rbind
dfjj <- rbind(df, list("Jumlah", dim(df)[1]))
Hasilnya
R> dfj
v1 v2
1: a 1
2: b 2
3: c 3
4: d 4
5: e 5
6: f 6
7: g 7
8: h 8
9: i 9
10: j 10
11: Jumlah 10
Cara lain ialah dengan membuat data.frame baru dan kombinasikan dengan df
dftot <- data.table(v1 = "Jumlah", dim(df)[1])
dfcom <- rbindlist(list(df, dftot))
Hasilnya bila Jumlah dimasukkan di bawah data.frame
R> dfcom
v1 v2
1: a 1
2: b 2
3: c 3
4: d 4
5: e 5
6: f 6
7: g 7
8: h 8
9: i 9
10: j 10
11: Jumlah 10
Sekiranya ingin memasukkan informasi dibarisan tertentu boleh buat seperti begini:
## Masukkan selepas barisan ke-3
rbindlist(list(df[1:3, ], as.list(c("ZZ", 6)), df[4:dim(df)[1], ]))
## atau
rbindlist(list(df[1:3, ], list("ZZ", 6), df[4:dim(df)[1], ]))
Barisan baru selepas barisan ke 3 dengan "ZZ" dan nombor 6 dimasukkan.
v1 v2
1: a 1
2: b 2
3: c 3
4: ZZ 6
5: d 4
6: e 5
7: f 6
8: g 7
9: h 8
10: i 9
11: j 10