R读取多个文件,连接结果

R读取多个文件,连接结果,r,R,我有几个以上格式的文件(N=414)。在R中,我希望读取所有文件、转置和rbind或串联值。我的文件名为age_wg2_ind1.vstats,范围从1到414(在ind[i].vstats之后)。到目前为止,我已经尝试过: NVAR 6957423 RATE 1 MAC 963.605 MAF 0.228126 SING 0 MONO 0 TITV 1.99326 TITV_S NA DP NA QUAL NA PASS 1 FILTER|PASS

我有几个以上格式的文件(N=414)。在R中,我希望读取所有文件、转置和rbind或串联值。我的文件名为age_wg2_ind1.vstats,范围从1到414(在ind[i].vstats之后)。到目前为止,我已经尝试过:

NVAR    6957423
RATE    1
MAC 963.605
MAF 0.228126
SING    0
MONO    0
TITV    1.99326
TITV_S  NA
DP  NA
QUAL    NA
PASS    1
FILTER|PASS 1
PASS_S  0
txtfiles=list.files(pattern=“*.vstats”)
用于(i in 1:length(txtfiles)){
tmp=read.table(txtfiles[i],sep=“\t”)

ttmp如果您的文件在第一列中都有变量名,而在第二列中有值,那么下面应该可以使用

txtfiles = list.files(pattern="*.vstats")

for (i in 1:length(txtfiles)){
     tmp = read.table(txtfiles[i],sep="\t")
  ttmp<-t(tmp[i])
 colnames(ttmp)<-ttmp[1,];ttmp2<-ttmp[2:nrow(ttmp),]
}

l你能用你要问的内容更新你的问题吗?谢谢。文件的结构是什么?只有文本文件吗?readLines()怎么样?我不明白发生了什么。@Elad663列名在第1列,值在多个文本文件的第2列。转换后,值在第2行。我想提取每个文件中的值并附加到一个文件中。保留文件的顺序也很重要-需要能够知道哪些值对应于哪个file@user3403622;如果所有文件都有两列数据,则上述代码应该可以工作。错误是没有读入数据。请尝试只读入一个文件:read.table(txtfiles[1],sep=“\t”),以确保目录正常。所有文件都有数据吗?它工作了!!其中一个文件中没有任何内容,导致了错误。
l <- lapply(txtfiles , function(i) { 
                 r <- read.table(i ,sep="\t")
                 mat <- t(r[,2])
                 colnames(mat) <- r[,1]
                 mat
                 })

(out <- do.call(rbind , l))
txtfiles2 <- paste0("age_wg2_ind",1:414,".vstats")
#Some example data

df <- data.frame(letters[1:3] , 1:3)
write.table(df,"temp1.out",sep="\t" , row.names=F , col.names=F)
write.table(df,"temp2.out",sep="\t", row.names=F , col.names=F)
df[,1] <- df[,2] <- NULL
write.table(df,"temp3.out",sep="\t", row.names=F , col.names=F) # zero columns

#Read in data
txtfiles <- list.files(pattern="*.out")

l <- lapply(txtfiles , function(i) { 
                r <-  tryCatch(read.table(i , sep="\t"), error=function(e) NULL)
                 if(!is.null(r)) {
                     mat <- t(r[,2])
                     colnames(mat) <- r[,1]
                     mat
        }})

l <- l[!sapply(l, is.null)]

(out <- do.call(rbind , l))