0

我编写了以下脚本以在 for 循环中生成几个绘图,效果很好:

stat <- list.files("D:/...", pattern = "met")

par(mfrow = c(4, 4))
for (x in stat) {
plot((assign(x, read.csv(x, head=TRUE, sep=""))),typ="l", col="red")
}

我现在想要实现的是根据读取的文件的名称递归地添加每个图形的标题。

希望这很清楚,

最好的,

PS我还有另一个好奇心,但我可能会留到以后。

谢谢。

4

1 回答 1

5

添加标题 ( main) 参数是否plot可以满足您的需求?

plot((assign(x, read.csv(x, head=TRUE, sep=""))),typ="l", col="red", main=x)

为 OP 评论编辑

你可以用gsub这个。

plot((assign(gsub('\\.txt', '', x), 
      read.csv(x, head=TRUE, sep=""))),
     typ="l", 
     col="red", 
     main=gsub('\\.txt', '', x))

但是,您正在使用的循环分配构造是养成使用习惯的危险构造。通常这是通过将所有文件作为列表读取然后lapply遍历它们来完成的,或者该主题的一些变体。

除非您在此绘图步骤之后进行其他处理,否则您应该能够assign完全跳过该步骤。

plot(read.csv(x, head=TRUE, sep=""),
     typ="l",
     col="red",
     main=gsub('\\.txt', '', x))
于 2012-07-03T16:20:11.297 回答