我有一系列文件,当我阅读它们并单独操作它们时,我没有遇到任何问题。
它们按如下方式组织:
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循环有更快的方法吗?这是一次练习,我可能会导入大量文件以平均
答案 0 :(得分:0)
我们可以在list
中阅读文件,然后将Reduce
与+
一起使用,并除以length
的{{1}}以获取{{} 1}}值
list