gpt4 book ai didi

r - 根据向量中的命名属性拆分向量列表

转载 作者:行者123 更新时间:2023-12-04 12:14:13 26 4
gpt4 key购买 nike

我正在寻找一种根据向量中的命名属性拆分向量列表的方法。
假设我有一个带有向量的命名列表:

> v <- list("1"=c(col1=1, col2="a", col3="!"), "2"=c(col1=2, col2="b", col3="@"), "3"=c(col1=3, col2="b", col3="#"), "4"=c(col1=4, col2="a", col3="$"))
> v
$`1`
col1 col2 col3
"1" "a" "!"

$`2`
col1 col2 col3
"2" "b" "@"

$`3`
col1 col2 col3
"3" "b" "#"

$`4`
col1 col2 col3
"4" "a" "$"

我想根据 col2的值进行拆分例如,在这个例子中,我想要 2 个列表:
  • 第一个列表将包含所有具有 col2 = a 的向量
  • 第二个列表将包含所有具有 col2 = b 的向量.


  • 我正在寻找类似于以下内容的输出:

    对于 col2 = a :
    $`1`
    col1 col2 col3
    "1" "a" "!"
    $`4`
    col1 col2 col3
    "4" "a" "$"

    对于 col2 = b :
    $`2`
    col1 col2 col3
    "2" "b" "@"

    $`3`
    col1 col2 col3
    "3" "b" "#"

    注意 :我更喜欢按 col2 分组的更通用的解决方案,但二进制解决方案也可以,因为在这个特定的应用程序中,我只有 2 个可能的 col2 值。

    最佳答案

    使用 split 的解决方案和 sapply .

    split(v, sapply(v, function(x) x[["col2"]]))
    # $a
    # $a$`1`
    # col1 col2 col3
    # "1" "a" "!"
    #
    # $a$`4`
    # col1 col2 col3
    # "4" "a" "$"
    #
    #
    # $b
    # $b$`2`
    # col1 col2 col3
    # "2" "b" "@"
    #
    # $b$`3`
    # col1 col2 col3
    # "3" "b" "#"

    关于r - 根据向量中的命名属性拆分向量列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54809874/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com