В R я пытаюсь сделать простую функцию, подобную приведенной ниже, просто суммируя элементы в строке кадра данных, которые являются k позициями (i, j) элемент. Если элемент находится на краю (например, j = 1 или j = n), я бы хотел, чтобы элемент слева или справа не существовал, чтобы его обрабатывали как 0. Но с моей текущей функцией я получаю если элемент справа не существует, или вектор, если один из них не существует из-за поведения R с отрицательными индексами. Есть ли лучший способ написать эту функцию, не используя инструкции if для рассмотрения трех случаев (элемент находится в середине, слишком далеко слева или слишком далеко справа)?Подведение близлежащих элементов матрицы в R
sum_nearby <- function(dat, i, j, k) {
dat[i, j - k] + dat[i, j + k]
}