Cara menghitung nilai shift di r (dengan contoh)


Anda dapat menggunakan fungsi lag() dari paket dplyr di R untuk menghitung nilai lag.

Fungsi ini menggunakan sintaks dasar berikut:

mengimbangi(x, n=1, …)

Emas:

  • x : vektor nilai
  • n : jumlah posisi yang akan ditunda

Contoh berikut menunjukkan cara menggunakan fungsi ini untuk menghitung nilai yang digeser dalam praktiknya.

Contoh: Menghitung Nilai Bergeser di R

Misalkan kita memiliki kerangka data berikut di R yang menunjukkan jumlah penjualan yang dilakukan toko selama 10 hari berturut-turut:

 #create data frame
df <- data. frame (day=1:10,
                 sales=c(18, 10, 14, 13, 19, 24, 25, 29, 15, 18))

#view data frame
df

   day sales
1 1 18
2 2 10
3 3 14
4 4 13
5 5 19
6 6 24
7 7 25
8 8 29
9 9 15
10 10 18

Kita dapat menggunakan fungsi lag() dari paket dplyr untuk membuat kolom lag yang menampilkan penjualan hari sebelumnya untuk setiap baris:

 library (dplyr)

#add new column that shows sales for previous day
df$previous_day_sales <- dplyr::lag(df$sales, n= 1 )

#view updated data frame
df

   day sales previous_day_sales
1 1 18 NA
2 2 10 18
3 3 14 10
4 4 13 14
5 5 19 13
6 6 24 19
7 7 25 24
8 8 29 25
9 9 15 29
10 10 18 15

Berikut cara menafsirkan hasilnya:

  • Nilai pertama pada kolom offset adalah NA karena tidak ada nilai sebelumnya pada kolom penjualan.
  • Nilai kedua pada kolom offset adalah 18 karena merupakan nilai sebelumnya pada kolom penjualan.
  • Nilai ketiga pada kolom offset adalah 10 karena merupakan nilai sebelumnya pada kolom penjualan.

Dan seterusnya.

Kita juga dapat mengubah nilai argumen n dalam fungsi lag() untuk menghitung nilai lag untuk sejumlah posisi sebelumnya yang berbeda:

 library (dplyr)

#add new column that shows sales for two days prior
df$previous_day_sales <- dplyr::lag(df$sales, n= 2 )

#view updated data frame
df

   day sales previous_day_sales
1 1 18 NA
2 2 10 NA
3 3 14 18
4 4 13 10
5 5 19 14
6 6 24 13
7 7 25 19
8 8 29 24
9 9 15 25
10 10 18 29

Catatan : Untuk membuat kolom lead, gunakan fungsi lead() dari paket dplyr, bukan fungsi lag() .

Sumber daya tambahan

Tutorial berikut menjelaskan cara menggunakan fungsi umum lainnya di R:

Cara menggunakan fungsi n() di dplyr
Cara menggunakan fungsicross() di dplyr
Cara menggunakan fungsi relokasi() di dplyr
Cara menggunakan fungsi irisan() di dplyr

Tambahkan komentar

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