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