【问题标题】:How to extract list element names in lapply to rename files如何在 lapply 中提取列表元素名称以重命名文件
【发布时间】:2017-01-06 17:34:37
【问题描述】:

我想简单地打印出我拥有的列表元素的名称,以便我可以使用它们来创建新文件名以打印出数据集

这是我所拥有的,但基本上它没有给我结果并告诉我它找不到函数“名称”。

ReportOp<-function(x){
theNamedFile<-paste(name(x),"~\\Myfile.pdf")
}

lapply(mylist,ReportOp)

【问题讨论】:

  • 如果是list的名字,那么ReportOp(mylist) BTW,你需要names(x)而不是name(x)另外,函数名是ReportOp而不是ReportPDF
  • 这会给我所有的名字,但我如何粘贴每个命名的元素?
  • 显示什么是mylist
  • 你是在说list 这样的名字吗,比如l1 &lt;- list(a=1, b = 2, c= 3); names(l1)
  • paste 是矢量化的。试试看:paste(names(mylist),"foo").

标签: r


【解决方案1】:

我们需要在 OP 的函数中使用names 而不是name,如果我们在names 和新字符串之间不需要空格,则使用paste0 而不是paste,并返回' theNamedFile',然后直接在'mylist'上应用函数

ReportOp<-function(x){
    theNamedFile <- paste0(names(x),"~\\Myfile.pdf")
    theNamedFile
 }
ReportOp(mylist)

如果我们使用 lapply 应用它

lapply(mylist, ReportOp)

这将返回元素的names(如果是命名向量或data.frame 的列名)作为list

【讨论】:

  • 将列表的子元素粘贴到 ~\\Myfile.pdf 而不是列表中每个元素的名称
  • @SebastianZeki 我展示了两个选项,因为我不完全确定你想要哪个
  • 这仍然适用于数据框列表吗?如何获取列表中包含的数据框名称 - 还是应该将其作为一个单独的问题提出?
  • @SebastianZeki 是的,它适用于 list 的 data.frames(第二个)
猜你喜欢
  • 2021-05-01
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多