如何解决从向量列表中减去单个向量元素
我有一个列表r
,其中包含n个长度不同的向量。
还有一个单独的向量a
,其长度也为n
x <- 1:100
r <- slider(x,.size=5)
a <- 1:length(r)
我要从列表r
的每个向量中的每个元素中减去a
的元素。
因此,应从a
的第一个向量的每个元素中减去r
的第一个元素。
类似的事情,但是规模更大,并将向量保持在列表r
r[1]-a[1]
r[2]-a[2]
r[3]-a[3]
这给了我Error in r[1] - n[1] : non-numeric argument to binary operator
免责声明:示例中r
的向量没有不同的长度。生成示例时,我不知道该怎么做。
解决方法
您可以使用Map
:
Map(`-`,r,a)
,
@RonakShah的相同结果可以通过以下方式获得:
mapply(`-`,a)
输出:
[[1]]
[1] 0 1 2 3 4 5 6 7
[[2]]
[1] -1 0 1 2 3 4 5 6 7
[[3]]
[1] -2 -1 0 1 2 3 4 5 6 7
,
我们可以使用for
循环
out <- vector('list',length(r))
for(i in seq_along(r)) {
out[[i]] <- r[[i]] - a[i]
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。