循环数据框的列名

时间:2014-07-08 12:51:56

标签: r loops dataframe

这对我来说是一个非常复杂的问题,我希望有人能帮助我。

我的工作目录中有大约500个csv文件。每个csv文件都有三列数据。但是,只有第二列和第三列具有列名,而第一列没有列名。例如,我的一个示例csv文件如下所示:

     name_1    name_2
23    34       65
43    34       23
54    12       21
65    12       23
76    14       23
76    45       12
87    76       54
78    21       65
78     23      45

我想做的是:

1)读取R

中的每个csv文件

2)将列名('col1')赋予第一列

3)将文件保存回工作目录。

我知道我需要展示到目前为止我所做的事情,但事情是我没有用这一点移动,并且完全不知道如何去做?如果有人能帮助我,我将非常感激。

非常感谢

2 个答案:

答案 0 :(得分:1)

filenames = list.files(pattern='[.]csv')

for(i in 1:length(filenames)){
  f <- read.csv(filenames[i],header=TRUE)
  colnames(f)[1] = "col1"
  write.csv(f, file = filenames[i], row.names=FALSE)
}

答案 1 :(得分:0)

看看是否有效:

设置工作目录:

dir='/yourpath/'
setwd(dir)

使用list.files获取所有带扩展程序&#39; .csv&#39;的文件列表,读取数据,重命名列并覆盖csv

处理所有文件

lapply(list.files(pattern = "[.csv]$"), 
  function(x) {
    cat('Processing file:', x, '\n');
    df <- read.csv(x, stringsAsFactors = FALSE, header = TRUE);
    colnames(df)[1] <- 'col1';
    write.csv(df, x);
  }
)