Как бы я суммировал элементы двух векторов, но исключил бы последний элемент - PullRequest
0 голосов
/ 09 ноября 2019

Я хочу суммировать все элементы векторов вместе. Однако я пытаюсь исключить последний элемент каждого вектора. Например,

vector1 <- c(10,20,3000)
vector2 <- c(20,40,5000)

sum(vector1, vector2)
[1] 8090

Но я бы хотел исключить 3000 в vector1 и 5000 в vector2 для вывода [1] 90. Кроме того, это просто воспроизводимый пример, мои настоящие векторы не имеют одинаковое количество элементов. Можно ли это сделать?

Ответы [ 3 ]

3 голосов
/ 09 ноября 2019

Вы можете использовать head для удаления последнего элемента и sum

sum(head(vector1, -1), head(vector2, -1))

Или сделать

sum(vector1[-length(vector1)], vector2[-length(vector2)])
2 голосов
/ 09 ноября 2019

Вы можете отменить выбор последнего элемента вашего вектора перед выполнением суммы:

vector1 <- c(10,20,3000)
vector2 <- c(20,40,5000)

sum(vector1[-length(vector1)], vector2[-length(vector2)])
1 голос
/ 09 ноября 2019

Вы можете вручную исключить последний компонент. Одна из возможностей заключается в следующем:

sum(rev(vector1)[-1], rev(vector2)[-1])

rev инвертирует вектор, [-1] выбирает все элементы, кроме первого (из инвертированного вектора).

...