我有一个循环,它查看一组文件,占据第四列,并将它们组合在一起。我想将“输出”文件夹之后的文件名附加为列的标题。
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
如何将文件名用作列标题?
谢谢。
答案 0 :(得分:1)
问题来自colnames(newdata)
和c(files2)
的长度不同。
例如,您可以将colnames(newdata) = c(files2)
移动到for循环之后,并用c(files2)
之类的内容替换c("ID", files2)
(因为您有length(files2) + 1
列)。