R导入多个文件并对它们执行复杂的功能

时间:2016-11-26 16:53:34

标签: r file

我有一系列文件,当我阅读它们并单独操作它们时,我没有遇到任何问题。

它们按如下方式组织:

e.g。

chrY<-read.table('chrY.txt', sep ='', header=F)
head(chrY)
        V1
1 4.514563
2 4.543689
3 4.553398
4 4.533981
5 4.495146
6 4.514563

我需要将每个值转换为数字:

所以我尝试将其作为染色体文件列表:

temp = list.files(pattern="chr*.txt")
for (i in 1:length(temp)) assign(temp[i], read.table(temp[i], sep ='', header=F))
> temp
[1] "chr17.txt" "chr18.txt"
[3] "chr19.txt" "chr1.txt" 
[5] "chr6.txt"  "chrY.txt"     

转换为数字:

for(i in temp){
  temp[i]<-as.numeric(temp[i])
}

我想绘制所有文件的平均值并绘制它们,

绘制一个导入的文件很好:

plot(chrY.txt[,1])

我尝试绘制所有这些值之间的平均值如下:

for(i in length(temp)-1){ #index -1 such that iteration is not out of range
 x<-(temp[i][,1]+temp[i+1][,1])/length(temp)
}
plot(x)

但是对于平均处理,我得到以下错误:

  

temp [i] [,1]出错:维数不正确

比R中的for循环有更快的方法吗?这是一次练习,我可能会导入大量文件以平均

1 个答案:

答案 0 :(得分:0)

我们可以在list中阅读文件,然后将Reduce+一起使用,并除以length的{​​{1}}以获取{{} 1}}值

list