首页 > 解决方案 > 将文件名写入列标题

问题描述

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

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

如何应用文件名作为列标题?

提前致谢。

标签: r

解决方案


问题在于colnames(newdata)c(files2)不具有相同的长度。

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


推荐阅读