Подтвердить что ты не робот

Функциональный способ возврата суммарной суммы?

Если у меня есть вектор суммарной суммы, например

> vec <- cumsum(1:10)
[1]  1  3  6 10 15 21 28 36 45 55

существует функциональный способ перевести vec в его исходный вектор c(1:10)?

Сейчас я использую цикл for:

> result <- vec[1]
> for (i in 2:length(vec)) result <- append(result, vec[i]-vec[i-1])
> result
[1]  1  2  3  4  5  6  7  8  9 10

Но мне это не кажется очень R... Любые идеи?

4b9b3361

Ответ 1

Просто используйте diff, чтобы получить следующие отличия:

> c(vec[1],diff(vec))
 [1]  1  2  3  4  5  6  7  8  9 10