将文件名写入列标题

时间:2018-10-03 15:59:21

标签: r

我有一个循环,它查看一组文件,占据第四列,并将它们组合在一起。我想将“输出”文件夹之后的文件名附加为列的标题。

files2 <- list.files(path="c:/Users/~/Output",pattern="*.csv", full.names=TRUE, recursive=FALSE)

newdata <- (1:51)

for(ii in files2){

titlename2<- tools::file_path_sans_ext(basename(files2)) 
#genes <- read.csv(files2[1], header=True)[,1]     # gene names
mydata2 <-read.csv(ii, header = T, stringsAsFactors=FALSE)
mydata2<- mydata2[,4]


newdata <- cbind(newdata,mydata2)
colnames(newdata)= c(files2)

}

但是,当我尝试应用文件名时,出现以下错误:

Error in dimnames(x) <- dn : 
  ``length of 'dimnames' [2] not equal to array extent

如何将文件名用作列标题?

谢谢。

1 个答案:

答案 0 :(得分:1)

问题来自colnames(newdata)c(files2)的长度不同。

例如,您可以将colnames(newdata) = c(files2)移动到for循环之后,并用c(files2)之类的内容替换c("ID", files2)(因为您有length(files2) + 1列)。