将每个值分配给单独的列表元素而不循环

Assign each value to separate list element without loop

让我们考虑以下数字:

set.seed(42)
x <- sample(100, replace = T)
evens <- x[x%%2 == 0]

我想将 evens 的每个元素作为列表的单独元素。所以用 for 做这个真的很简单:

lst <- list()

for (i in seq_len(length(evens))) lst[[i]] <- evens[i] 

但是我不太确定如何在没有循环的情况下做到这一点。我认为使用 lapply 可以创造一些魔法,但我不知道如何使用它。你能帮帮我吗?

也许是这个?

tapply(x, x %% 2 == 0, function(x) x)

根据您的描述,您指的是像下面这样的列表吗?

as.list(evens)

如果你想使用lapply,你可以试试

lapply(evens, c)