使用R中的多个输入更改data.frame列名

时间:2012-08-13 14:59:36

标签: r dataframe

我希望更改用户输入的每个文件中的一个特定列或所有列的名称。到目前为止,我已经尝试过这个:

File.names<-(tk_choose.files(default="", caption="Files", multi=TRUE, filters=NULL, index=1))
Num.Files<-NROW(File.names)
test<-sapply(1:Num.Files,function(x){readLines(File.names[x])})
data<-lapply(1:Num.Files, function(x){data<-read.table(header=TRUE, text=test)})
new.names<-names(data)
new.names[[14]]<-'column14'
names(data) <- new.names

但我明白了:

Error in names(data) <- new.names : 
  'names' attribute [14] must be the same length as the vector [1]
Execution halted

原始列名称如下:

Targ  cov  av_cov  87A_cvg  87Ag  87Agr  87Agr  87A_gra  87A%_1   87A%_3   87A%_5   87A%_10  87A%_20  87A%_30 87A%_40   87A%_50 87A%_75 87A%_100

有没有人对如何以这种方式更改多个文件的列名有任何建议? 谢谢, 斯蒂芬

1 个答案:

答案 0 :(得分:1)

File.names<-(tk_choose.files(default="", caption="Choose your files", multi=TRUE, filters=NULL, index=1))
Num.Files<-NROW(File.names)
# read the files into a dummy variable
test<-sapply(1:Num.Files,function(x){readLines(File.names[x])})
# manipulate the first file
data<-read.table(header=T,text=test[1])
names(data)[14]<-'column14'

tk_choose.files允许您选择文件。它将这些文件名存储在字符向量中。然后,您需要将数据读入R.我刚刚使用readLines来存储来自相应文件的所有数据,以简化操作。您可以直接使用read.tablesread.csv等内容。