【发布时间】:2017-03-30 14:03:55
【问题描述】:
我有两个向量,我想在 R 中创建一个列表,其中一个向量是键,另一个是值。我以为我会很容易地在我的书中找到答案或在谷歌上搜索,我期待找到一个解决方案,比如将名称添加到向量(names(v)
我自己提出了两种可能的解决方案,但对我来说没有一个是优雅的。 R 不是我的主要编程语言,但我认为 R 如此务实应该存在更好的解决方案(类似于 list(keys=x, values=y))。
我的解决方案1:经典循环解决方案:
> xx <- 1:3
> yy <- letters1:3
> zz =list()
>for(i in 1:length(yy)) {zz[[yy[i]]]<-xx[i]}
我的解决方案 2:通过命名向量的间接路径:
> names(xx) <- letters[1:3]
> as.list(xx)
似乎我有一个解决方案,但我的向量有 100 万个或更多元素,我不仅担心编码风格(对我很重要)而且担心效率(但我不知道如何在 R 中进行分析)。有没有更合适的方法来做到这一点?使用命名向量快捷方式是一种好习惯吗?
[[UPDATE]] 我的应用程序,可能我过度简化了问题以使其可重现。我想为列表的元素命名。我首先尝试了 names() 但似乎我做错了什么并且没有工作。所以我得到了一个错误的想法,即 names() 不适用于列表。但他们确实如接受的答案所示
【问题讨论】:
-
您说“一百万或更多元素(即大对象)”?你能精确地确定你的对象的结构以了解它有多大吗?
-
@agstudy 我认为这意味着由于元素的数量,OP 将向量描述为大对象,而不是将元素本身描述为大对象?尽管如此,将两个向量组合在一个列表中......
标签: r