r - 如何使用 R 将合并文档中的列标题替换为文件目录?
问题描述
我在不同的条件下做了一个实验。这些条件中的每一个都有自己的文件夹。在每个文件夹中,每个副本都有一个子文件夹,其中包含一个名为 DistList.txt 的文本文件。然后看起来像这样,其中文件夹“C1.1”、“C1.2”等包含提到的 .txt 文件:
我现在已经设法使用以下脚本合并所有这些单个 DistList.txt 文件:
setwd("~/Desktop/Experiment/.")
fileList <- list.files(path = ".", recursive = TRUE, pattern = "DistList.txt", full.names = TRUE)
listData <- lapply(fileList, read.table)
names(listData) <- gsub("DistList.txt","",basename(fileList))
library(tidyverse)
library(reshape2)
bind_rows(listData, .id = "FileName") %>%
group_by(FileName) %>%
mutate(rowNum = row_number()) %>%
dcast(rowNum~FileName, value.var = "V1") %>%
select(-rowNum) %>%
write.csv(file="Result.csv")
然后生成一个 .csv 文件,其中只有一个标题编号(标记为红色),这对我来说不是那么有用,如下图所示:
我宁愿拥有“DistList.txt”文件的目录,或者更好的是只有它们所在的文件夹的名称作为标题。我认为我可以使用函数list.dirs()
and来做到这一点colnames
,但不知何故我没有设法让它工作。
如果有人可以帮助我解决这个问题,我将不胜感激!
解决方案
我认为这条线
names(listData) <- gsub("DistList.txt", "", basename(fileList))
应该:
names(listData) <- gsub("DistList.txt", "", fileList)
因为通过使用basename
,我们删除了所有文件夹,留下了文件名,并且使用gsub"DistList.txt"
将文件名替换为空字符串。""
我们实际上可能希望在下面提取最后一个目录,在您的情况下应该给出如下内容c("C1.1", "C1.2", ...)
:
names(listData) <- basename(dirname(fileList))
推荐阅读
- ios - 如果通过触摸推送启动应用程序,有没有办法在等待应用程序的主页面加载完成后运行代码?
- reactjs - 第一次加载页面时,HTML5 视频不会在 React 应用程序中自动播放
- git - 标准错误:主机密钥验证失败 | GitHub | 詹金斯 | 视窗
- javascript - JS:处理读取未直接设置的属性的最佳方法是什么?
- sql - SQL 外键帮助。ORA-00907 缺少右括号
- javascript - 为每个对象创建唯一 ID
- java - 未找到 XPathFactory 实现,ubuntu 服务器中的 xpath 工厂实例创建问题。如何解决问题?
- c++ - 使用 KissFFT 获取频域图像并返回
- javascript - 角度服务工作者缓存的 index.html
- java - 文本。无需删除先前数据即可添加的文件