【问题标题】:truncating df or file extension, nested loop using list.files and lapply使用 list.files 和 lapply 截断 df 或文件扩展名,嵌套循环
【发布时间】:2013-12-05 01:03:42
【问题描述】:

是否有一种有效的方法可以从需要 .csv 扩展名的目录中读取 .csv 文件,但在代码循环时删除 .csv 扩展名,为每个文件编写一个 .pdf?添加另一个循环来修剪 .csv 扩展名?

例如,filename1.pdf,而不是 filename1.csv.pdf。 (前者是我想要的)。

假设文件和字段名称存在,下面的代码可以工作。

感谢任何 cmets。

ids<-list.files(path="C:/Program Files/R/R-2.12.2/STM/STM_A", pattern= "*.csv",       full.names=T,recursive=F)
lapply(ids, function(x)
    {       
a<-as.data.frame(read.csv(x, header=TRUE)) 
names(a)<-tolower(names(a))                                     
ptm<-proc.time()
pdf(file=(paste(x,".pdf"))) 
d_ply(a,"name",function(x) {
plot(data=x,value~site, xlab=names(a[1]), ylab=unique(x$metricname))
    })
dev.off()  
proc.time() -ptm 
})

【问题讨论】:

    标签: list pdf csv directory nested-loops


    【解决方案1】:

    没有 cmets,我已经找到了我的问题的答案,所以我正在传递它。

    答案是在调用中使用 sub 函数重命名文件以写入 pdf 文件。

    假设文件和字段名称存在,此代码有效。

        ids<-list.files(path="C:/Program Files/R/R-2.12.2/STM/STM_A", pattern= "*.csv", full.names=T,recursive=F)
        lapply(ids, function(x)
    {     
         a<-as.data.frame(read.csv(x, header=TRUE)) 
         names(a)<-tolower(names(a))                                     
         ptm<-proc.time()
         pdf(file=(paste(sub("[.][^.]*$", "", x),".pdf"))) 
         d_ply(a,"metricname",function(x) {
         plot(data=x,metricvalue~dcesystem.id, xlab=names(a[1]), ylab=unique(x$metricname))
         })
         dev.off()  
         proc.time() -ptm 
      })
    

    【讨论】:

      猜你喜欢
      • 2019-06-21
      • 1970-01-01
      • 2023-03-28
      • 2020-10-01
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      相关资源
      最近更新 更多