Вычитание столбцов в цикле - PullRequest
3 голосов
/ 07 апреля 2020

У меня есть такой фрейм данных:

df:
   A  B  C
1  1  2  3
2  2  2  4
3  2  2  3

Я хотел бы вычесть каждый столбец следующим меньшим (A-0, BA, C -B). Поэтому мои результаты должны выглядеть так:

df:
   A  B  C
1  1  1  1
2  2  0  2
3  2  0  1

Я попробовал следующее l oop, но оно не сработало.

for (i in 1:3) {
  j <- data[,i+1] - data[,i]
}

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Попробуйте это

df - cbind(0, df[-ncol(df)])

#   A B C
# 1 1 1 1
# 2 2 0 2
# 3 2 0 1

Данные

df <- data.frame(A = c(1, 2, 2), B = c(2, 2, 2), C = c(3, 4, 3))
0 голосов
/ 07 апреля 2020

Мы также можем удалить первый и последний столбец и сделать вычитание

df[-1] <- df[-1]-df[-length(df)]

data

df <- data.frame(A = c(1, 2, 2), B = c(2, 2, 2), C = c(3, 4, 3))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...