【问题标题】:Naming a list of vectors by the vectors names [duplicate]通过向量名称命名向量列表[重复]
【发布时间】:2017-04-03 23:04:28
【问题描述】:

我有 3 个不同的向量,我想将它们组合成一个向量列表。但我想在列表名称中保留向量的名称。以下是我一直在做的方式。

A<-seq(from=1, to=10, by=1)
B<-rep(11,10)
C<-seq(from=50, to=100, by=10)

ABC<-list(A,B,C)

这是我想要精简的部分

names(ABC)<-c("A", "B", "C")

谢谢。

【问题讨论】:

  • 关于list(A=A,B=B,C=C)的帽子?
  • 还有mget(c("A","B","C"))
  • 如果你经常这样做,我想你可以为它定义一个实用函数,比如:named_list &lt;- function(...) `names&lt;-`(list(...), as.character(substitute(list(...))[-1])) 那么它只是named_list(A, B, C)
  • 如果你碰巧加载了 tibble/tidyverse,tibble::lst(A, B, C) 会自动设置名称。
  • @MadmanLee 一个关键的区别在于,如果substitute 的输入包含您所在函数的形式参数,它将用函数外部的实际(未评估)参数替换它们。所以在我上面的评论中,substitute(list(...)) 返回了调用list(A, B, C),而quote(list(...)) 将返回调用list(...)

标签: r


【解决方案1】:

好的,根据@TimGoodman 的建议,我创建了一个函数来为我执行此操作。愿望清单将此作为可选功能。

named.list<-function(...){
    bob<-list(...)
    names(bob)<-as.character(substitute((...)))[-1]
    return(bob)
}

谢谢!

【讨论】:

    猜你喜欢
    • 2022-10-15
    • 2018-03-25
    • 1970-01-01
    • 2020-05-12
    • 2019-01-07
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多