簡體   English   中英

如何將 lapply 與需要向量作為參數的 function 一起使用

[英]How to use lapply with a function that requires a vector as an argument

我試圖在向量列表中找到我有 3 或 1 的位置,但如果我使用的 function 需要向量作為參數,我不知道如何使用 lapply 來做到這一點。 前任。:

k <- list(c(2,0,2,1),c(3,0,2,0),c(0,1,2,0)) lapply(k,match(c(1,3),k)) # The problem is here

lapplylist作為其第一個參數,並將 function 作為其第二個參數。 function 的可選 arguments 可以作為額外的 arguments 添加到lapply

通過使用match(c(1,3), k) ,您在c(1, 3)和您的列表k上調用match 您要做的是將 function 傳遞給lapply ,它將以向量x作為參數並返回match(c(1, 3), x) 然后lapply將對列表k的每個元素執行此 function 。

這就是你應該如何使用lapply

k <- list(c(2,0,2,1),c(3,0,2,0),c(0,1,2,0))
lapply(k, function(x) match(c(1,3), x))
# [[1]]
# [1]  4 NA
#
# [[2]]
# [1] NA  1
#
# [[3]]
# [1]  2 NA

@Samuel Diebolt 的回答在 lapply 中使用匿名lapply調用。 要在沒有匿名調用的情況下使用它,語法將是

lapply(k, match, x = c(1, 3))

#[[1]]
#[1]  4 NA

#[[2]]
#[1] NA  1

#[[3]]
#[1]  2 NA

暫無
暫無

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

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