【发布时间】:2022-01-05 10:07:59
【问题描述】:
如果我在这里有这个列表:
list1 <- list(2, "hello", c(3, 5, 4))
我有这个:
ff <- "Bar"
我想通过ff 将列表名称从"list1" 更改为"Bar"。
【问题讨论】:
-
这样做的目的是什么?动态更改变量名称通常是一个非常糟糕的主意。出于所有意图和目的,您应该将变量名称视为静态,并与您编写的代码相关联。事实上,大多数语言根本不允许这样做,而且有充分的理由。
-
您应该为此使用(嵌套)列表。然后,您可以将新元素添加到循环内的列表中。更好的是不使用循环,而是使用诸如
lapply之类的函数生成列表。如果您可以展示您正在使用的实际数据,我们可以为您提供更具体的帮助。 -
最后一条评论:您可以使用
<-或=进行分配,两者都可以工作并且是identical。但坚持一个,不要在整个代码中混合和匹配它们。 -
正如@Konrad Rudolph 所建议的那样,通常您更喜欢其中一个应用功能,对于需要命名列表的情况,您可能希望使用 sapply 而不是 lapply,以便您的列表项根据您应用的值。小例子:
sapply(c("Bar", "SAV"), FUN = function(x) "do something", simplify = FALSE, USE.NAMES = TRUE)