R:更改多个表的列名

时间:2011-06-29 10:23:52

标签: r

我读了多个.csv,现在想要在循环中更改所有列名。我只能找到如何更改单个表的名称:

colnames(w01_10temp) <- c("date", "time", "temp", "na") 

我还需要R.中的.csv文件。在我之前:

filenames <- list.files(path=getwd()) 
numfiles <- length(filenames) 
for (all_temp in c(1:numfiles)) {
filenames[all_temp] <- paste(filenames[all_temp],sep="")
assign(gsub([.]ASC$","temp",filenames[all_temp]),read.delim2(filenames[all_temp], fileEncoding="ISO-8859-15", skip = 4))    }

所以我尝试将lapply放入循环中,但没有成功:

for (all_temp in lapply(filenames,myReadTable)) {
  filenames[all_temp] <- paste(filenames[all_temp],sep="")
  }

1 个答案:

答案 0 :(得分:7)

编写包装函数:

myReadTable<-function(file){
 read.table(file,...)->x
 names(x)<-c("date","time","temp","na")
 return(x)
}

然后lapply通过文件名向量来获取数据框列表(这比使用全局变量更易于管理)。

lapply(c('fileA.csv','fileB.csv','fileC.csv'),myReadTable)