昨天报错了之后我就把列名修改了下,现在每个文件的列名变成了:
chr position coverage_sample_name methylation_sample_name
所以现在39个文件的前两列列名是一样的,我也是想根据这两列来进行合并,由于文件过大所以是在服务器上跑的,代码如下:
- #!/usr/bin/Rscript
- a = list.files("./filter")
- n = length(a)
- merge_data = read.csv(file = a[1],sep="",header=TRUE)
- for (i in 2:n){
- new_data = read.csv(file = a[i],sep="",header=TRUE)
- merge_data = merge(merge_data,new_data,by=c("chr","position"),all=TRUE)
- }
- write.csv(merge_data,file = "./filter/merge.csv",row.names=F)
复制代码
为了测试代码是否正确,我选取了其中的几个文件的前几百行来做测试,在本地运行这些代码的时候没有报错,并且结果也是我想要的,但是在服务器上投了这个脚本正式跑的时候,出现了以下错误:
nohup: ignoring input
Error in fix.by(by.x, x) : 'by' must specify a uniquely valid column
Calls: merge -> merge.data.frame -> fix.by
Execution halted
我现在完全不明白了,同样的代码为什么本地跑就能出结果,服务器上跑就总是报错,到底我哪里错了