R:如何访问列表元素的名称?

标签 r

我有一个数据框列表,其中包含一些时间序列预测的结果,每个数据框都有一个名称:

list.of.results <- list(modelA, modelB, modelC)

现在,我正在遍历列表并对每个模型的结果执行一些测试,但是我需要将数据框的名称提取为我当前正在遍历的字符串。

这让我得到一个空值:

names(list.of.results)
> NULL

任何想法如何做到这一点?谢谢

最佳答案

重新表述这个问题,目标是创建一个列表,其中列表元素根据已分配给它们的对象命名。如果将 a 分配给第一个列表元素,则名字应自动变为 a

这可以通过使用 makeNamedList 而不是 list 来实现。函数 makeNamedListthis question 的压缩结果.

makeNamedList <- function(...) {
  structure(list(...), names = as.list(substitute(list(...)))[-1L])
}

例子:

mylist <- makeNamedList(cars, iris)
str(mylist)

# List of 2
# $ cars:'data.frame':  50 obs. of  2 variables:
#   ..$ speed: num [1:50] 4 4 7 7 8 9 10 10 10 11 ...
# ..$ dist : num [1:50] 2 10 4 22 16 10 18 26 34 17 ...
# $ iris:'data.frame':  150 obs. of  5 variables:
#   ..$ Sepal.Length: num [1:150] 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
# ..$ Sepal.Width : num [1:150] 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
# ..$ Petal.Length: num [1:150] 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
# ..$ Petal.Width : num [1:150] 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
# ..$ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

因此 makeNamedList(cars, iris) 等同于 list(cars = cars, iris = iris)

关于R:如何访问列表元素的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35379590/

相关文章:

r - 如何有效地从点创建线串?

r - 如何将 R 中 prop.table 的所有值四舍五入到一行中?

sql - 将具有公共(public) ID 的行压缩为一行

r - 如何删除R中没有大写的单词?

r - 使用 R 中的命名向量将数据帧转换为逐行列表

r - 在 R 中将数据分成每周、每两周、每月和每季度的数据

R - 如何向 pheatmap 添加行和文本?

r - 向量中的混合类型(没有类型转换的 rbind 数据框)

r - 如何将data.frame转换为arules的事务

r - 以 plotly 方式操作 R 中的图例文本