从R中的每个列表元素中减去值

Wak*_*nka 1 r

我需要从R.每个列表元素在减去指定的值,被提到的文章,对于这样的任务apply系列函数来代替循环.我试过以下:

# Define list
> a = 1:20

# Substraact this from each element
> substract_me = 5

# Function for substracting
> substract = function(x,y) { ret = x-y; return(ret) }

# The problem is that I do not know how to access the current array element and pass it to substract function
lapply(a, substract)
Run Code Online (Sandbox Code Playgroud)

这里提到匿名函数也可以使用,但它对我没有用,我得到语法错误.事实上,它看起来就像语法糖一样.问题仍然存在,我在使用lapply函数时需要一些占位符或其他东西,所以我可以访问当前的list元素:

lapply(a, function([WHAT TO ADD HERE???],substract_me) substract([WHAT TO ADD HERE???],substract_me))
Run Code Online (Sandbox Code Playgroud)

可能是相关的,但我没有弄清楚过去的代码片段是如何工作的.

MrF*_*ick 11

R中的减法被矢量化

a = 1:20
substract_me = 5
a - substract_me
# [1] -4 -3 -2 -1  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
Run Code Online (Sandbox Code Playgroud)

apply这里不需要功能.