1) 我在目录“C:/Users/Me/Desktop/JUNETEST/”中有 48 个 tar.gz 文件。这些文件都具有相同的格式,除了代表每个文件一天中的小时的数字(即 voa_20170601-110000.tar.gz 而不是 voa_20170601-120000.tar.gz。 我需要导入所有 48 个文件并解压文件并仅提取每个“.tar.gz”中具有相同名称的数据文件。名称为“hit_data.tsv”。我想将每个“hit_data.tsv”分配为列表中的一个元素数据帧。我的代码似乎正确解压了所有 48 个文件。
但是,问题在于读取 hit_data.tsv 文件。它尝试读取每一列,但由于没有列标题而出现问题,因此它只读取第一列。如果单独拉取每个文件,我会为colnames(hit_data.tsv)分配一个名为 Headers 的向量的值。每个文件都具有相同的列名,因此 Header 向量可以应用于每个 hit_data.tsv。我的问题是,如何在循环期间为每个文件分配列名?或者如何更正我的代码以读取“hit_data.tsv”文件的所有列?
当前状态下的代码如下:
files <- list.files(path = "C:/Users/Reginald/Desktop/JUNETEST/",pattern = "tar.gz")
VOA<-length(files)
for (i in files){
eval(parse(text = paste0("untar(\"C:/Users/Reginald/Desktop/JUNETEST/",i,"\",files=\"hit_data.tsv\")",sep="" )))
VOA[i] <- read_tsv("~/hit_data.tsv")
#VOA[i]<- as.data.frame(VOA[i])
#colnames(VOA[i])<-Headers[1,]
VOA.df <-do.call(rbind,VOA[i])
}