r - 将文件名写入列标题
问题描述
我有一个循环查看一组文件,获取第 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
如何应用文件名作为列标题?
提前致谢。
解决方案
问题在于colnames(newdata)
和c(files2)
不具有相同的长度。
例如,您可以colnames(newdata) = c(files2)
在 for 循环之后移动并替换c(files2)
为c("ID", files2)
(因为您有length(files2) + 1
列)。
推荐阅读
- python - 将 df.iloc 与变量一起使用
- regex - 流畅的解析
- python - Django 错误 PermissionDenied 没有属性 set_cookie
- python - 在 KivyMD 中创建多个 ILeftBodyTouch 项目
- netsuite - NetSuite 在 Onchange“行项目”期间获取描述并设置税金
- email - 如何在 Keycloak 中保留待处理的电子邮件地址?
- java - 通过某些两个字段比较两个不同对象的列表
- python - Django文件从shell运行但不运行但自己运行
- angular - Angular 6 - 将非模块文件导入 systemjs.config.js
- flutter - Flutter,如何在渲染之前知道 Widgets 是否适合?