簡體   English   中英

從向量列表中減去單個向量元素

[英]Subtract a single vector element from List of vectors

我有一個包含 n 個不同長度的向量的列表r 還有一個長度為 n 的單獨向量a

x <- 1:100
r <- slider(x,.size=5)

a <- 1:length(r)

從列表中的每個向量的每一個元素r我要減去的元素a 因此,應從r的第一個向量的每個元素中減去a的第一個元素。

像這樣,但規模更大,並將向量保留在列表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(`-`,r,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]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM