【问题标题】:Change class of elements in list and save with element name更改列表中元素的类别并使用元素名称保存
【发布时间】:2012-12-12 00:18:03
【问题描述】:

我有一个“im”类型的元素列表

mylist
$sp1
$sp2
$sp3

我想将它们转换为“SpatialGridDataFrame”类的元素列表

这适用于“im”类的单个对象:

a <- mylist$sp1
b <- as(a, "SpatialGridDataFrame")

然后我想将新列表 b 中的每个元素保存为 .TIFF 文件,并带有列表中每个元素的名称(sp1.TIFF、sp2.TIFF 等)

这也适用于包“rgdal”中的单个对象:

writeGDAL(b, "sp1.TIFF")

有什么线索吗?

【问题讨论】:

  • 你想要一个 SpatialGridDataFrame 列表还是只保存你的 im 对象列表?您不能对列表进行循环以保存它吗?

标签: r list rename spatial


【解决方案1】:

您可以使用lapply 循环遍历列表中的names

mylist.df <- lapply(names(mylist), 
                       function(x) {
                            b <- as(mylist[[x]], "SpatialGridDataFrame")
                            writeGDAL(b,paste(x,".TIFF",sep=''))
                            b
                       })

在这里您可以转换您的列表并保存您的对象。

【讨论】:

  • 我收到了这个错误(D 是“mylist”) 错误:意外的字符串常量在:“ b D.df
  • @rob 调试工具?在这里我们有问题,因为我无法测试我的代码。我没有一个可重复的例子来点缀它。但是这段代码有效。
  • @rob 你还有问题吗?
  • 是的,确实,我刚刚开始使用循环和函数。我仍然有上面提到的问题。也许在 "writeGDAL(b,paste(x,".TIFF",sep=''))" 中,函数循环通过列表 b 而不是通过列表的元素?或者我可以向您发送一个包含我的列表的 .RData 文件。
  • 是writeGDAL(b,paste(x,".TIFF",sep=''))请复制粘贴。
猜你喜欢
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-17
相关资源
最近更新 更多