1
我有一系列文件,当我读取它们并单独操作它们时,我没有问题。R导入多个文件并对它们执行复杂的功能
它们组织如下:
例如,
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)
然而
的平均化过程中,我得到以下错误:
Error in temp[i][, 1] : incorrect number of dimensions
有没有更快的方式做到这一点比R for循环?这是一个实践运行,我将可能进口了大量文件,平均增幅超过
你有'length(temp)-1',它只是一个单独的值,可能你需要'seq(length(temp)-1)'最后一个代码的第二个问题是'temp'是一个对象名称的向量,你必须阅读它(就像你在第一个代码块中做的那样),然后做一个总结 – akrun
谢谢@akrun在包含'seq()'的情况下尝试了它,但得到了同样的错误:你能在下半部分的指示中更清楚吗?只要我能看到第一块代码正在访问矢量,就像第二块一样... –
你需要读它'read.table(temp [i],sep ='',header = F) ' – akrun