Как рассчитать разницу между строками в R


Вы можете использовать функцию diff() для вычисления разницы между строками фрейма данных в R:

#find difference between rows in every column of data frame
diff(as.matrix(df))

#find difference between rows of specific column
diff(df$column_name)

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: найти разницу между строками каждого столбца

В следующем коде показано, как вычислить разницу между строками для каждого столбца во фрейме данных:

#create data frame
df <- data.frame(day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
 sales=c(7, 8, 8, 12, 10, 9, 13, 16, 11, 7))

#view data frame
df

 day sales
1 1 7
2 2 8
3 3 8
4 4 12
5 5 10
6 6 9
7 7 13
8 8 16
9 9 11
10 10 7

#calculate difference between rows for each column
diff(as.matrix(df))

 day sales
 [1,] 1 1
 [2,] 1 0
 [3,] 1 4
 [4,] 1 -2
 [5,] 1 -1
 [6,] 1 4
 [7,] 1 3
 [8,] 1 -5
 [9,] 1 -4

Пример 2: найти разницу между строками определенного столбца

В следующем коде показано, как вычислить разницу между строками для определенного столбца во фрейме данных:

#create data frame
df <- data.frame(day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
 sales=c(7, 8, 8, 12, 10, 9, 13, 16, 11, 7))

#calculate difference between rows in 'sales' column
diff(df$sales)

[1] 1 0 4 -2 -1 4 3 -5 -4

Пример 3: найти разницу между строками и добавить новый столбец

В следующем коде показано, как вычислить разницу между строками для определенного столбца во фрейме данных, а затем добавить эти различия в качестве нового столбца в конце фрейма данных:

#create data frame
df <- data.frame(day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
 sales=c(7, 8, 8, 12, 10, 9, 13, 16, 11, 7))

#calculate difference between rows in 'sales' column
sales_diff <- diff(df$sales)

#append NA to beginning of differences vector
sales_diff <- c(NA, sales_diff)

#append differences vector as new column
df$sales_diff <- sales_diff

#view updated data frame
df

 day sales sales_diff
1 1 7 NA
2 2 8 1
3 3 8 0
4 4 12 4
5 5 10 -2
6 6 9 -1
7 7 13 4
8 8 16 3
9 9 11 -5
10 10 7 -4

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные функции строк в R:

Как использовать функцию colSums() в R
Как использовать функцию rowSums() в R
Как использовать функцию nrow() в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.