【问题标题】:Assign each value to separate list element without loop将每个值分配给没有循环的单独列表元素
【发布时间】:2021-07-02 07:53:53
【问题描述】:

让我们考虑以下数字:

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 可以制造一些魔法,但我不知道如何使用它。你能帮我一把吗?

【问题讨论】:

    标签: r list loops lapply


    【解决方案1】:

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

    as.list(evens)
    

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

    lapply(evens, c)
    

    【讨论】:

    • @PKumar 哈哈,是的,没错!
    【解决方案2】:

    也许是这个?

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

    【讨论】:

    • function (x) x 已经在 R 中定义:它被称为 identity
    猜你喜欢
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多