【发布时间】:2019-03-30 23:13:07
【问题描述】:
我已经使用我们的软件进行了一些实验,并对其进行了分析。 该软件为每个实验生成一个单独的文件夹,其中包含一个名为“DistList”的 .txt 文件,如果该软件能够分析图像。如果它不能这样做,则没有 .txt 文件。 一般来说,如果有 DistList,文件夹排列是这样的:
为了将所有这些 .txt 文件放在一起,我已经制作了一个 R 脚本:
setwd("~/Desktop/Results/.")
fileList <- list.files(path = ".", recursive = TRUE, pattern = "DistList.txt", full.names = TRUE)
listData <- lapply(fileList, read.table)
names(listData) <- basename(dirname(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")
在这种形式中,它现在生成一个具有以下结构的文档,因为 A03 和 A04 中没有 DistList.txt:
A01 A02 A05
103 118 558
225 545 779
228 666 898
553 1002 1883
966 2004 NA
1112 3332 NA
NA 4556 NA
NA 5596 NA
NA 6639 NA
但是,我想要一个列表,其中不包含 DistList.txt 文档的文件夹也在生成的 .csv 文件中列出,例如:
A01 A02 A03 A04 A05
103 118 NA NA 558
225 545 NA NA 779
228 666 NA NA 898
553 1002 NA NA 1883
966 2004 NA NA NA
1112 3332 NA NA NA
NA 4556 NA NA NA
NA 5596 NA NA NA
NA 6639 NA NA NA
但我不知道,我必须如何修改我的脚本以生成这样的列表。如果我只是进行很少的实验,那将没有问题。但在我的例子中,有数百个这样的列,如果缺少任何内容,手动验证将花费太多时间。
如果您能帮我解决这个问题,我将不胜感激!
【问题讨论】:
标签: r list csv dataframe missing-data