【发布时间】:2017-03-05 00:10:01
【问题描述】:
在 R 中,我正在尝试制作一个像下面这样的简单函数,只需将数据框行中距离 (i,j) 元素 k 位置的元素相加。如果元素位于边缘(例如 j=1 或 j=n),我希望左侧或右侧不存在的元素被视为 0。但是使用我当前的函数,我最终得到一个如果右侧的元素不存在则错误,如果由于 R 的负索引行为导致左侧的元素不存在,则返回向量。有没有更好的方法来编写这个函数,而不只是使用 if 语句来处理三种情况(元素在中间、太左或太右)?
sum_nearby <- function(dat, i, j, k) {
dat[i, j - k] + dat[i, j + k]
}
【问题讨论】: