打开并绘制多个文件

时间:2013-09-16 11:36:29

标签: r

我有多个这种类型的文件(相同数量的列,不同的行)

A     1      1   1   43.50   12.50   
A     1      1   5   44.50   12.50   
A     1      1   9   44.50   12.50   
A     1      1   13      45.50   12.50   
A     1      1   17      45.50   12.50  
A     1      1   21      46.50   12.50   
A     1      2   1   47.50   12.50   
A     1      2   5   47.50   12.50   
A     1      2   9   48.50   12.50 

我想打开所有这些文件并为最后两列的每一个绘图。我设法使用lapply

打开它们
myfiles <- list.files(pattern="*.dat")
myfilesContent <- lapply(myfiles, read.table, header=T, sep = "\t")

然后我就堆叠了..

非常感谢!

1 个答案:

答案 0 :(得分:2)

你已经使用了一次lapply - 为什么不使用它两次?

阅读你的描述,我猜你不确定你的data.frames的大小,因此需要自动确定最后两列要绘制的列,并将它们交给你的绘图函数。

我会使用以下解决方案:

> myfiles <- lapply(list.files(pattern = "*.dat"),
+   read.table, header = TRUE, sep = "\t"
+ )

> # No check whether dim() will work correctly with your data!
> listplot <- function(x) {
>   col1 <- dim(x)[2] - 1
>   col2 <- dim(x)[2]
>   plot(x[,col1], x[,col2], type = "p")
> }

> lapply(myfiles, listplot)

这将一次完成所有情节; plot的其他参数以及保存图像等任何其他内容都会进入listplot函数。