【发布时间】: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 <- function(...) `names<-`(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