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])
}
答案 0 :(得分:0)
我猜您在read_tsv
包中使用readr
。
如果是这种情况,您可以在for循环中尝试以下代码
read_tsv('~/hit_data.tsv', col_names=Headers)
使用help()
或阅读包文档(readr.pdf)以了解您正在使用的功能也是一种很好的做法。