楼主: 不二不幸福
12859 12

[问答] R语言合并多个文件 [推广有奖]

11
不二不幸福 发表于 2018-1-19 14:16:16 |只看作者 |坛友微信交流群
yywan0913 发表于 2018-1-19 09:48
warning不叫报错。
把你的  by=c('chr','position')  去掉
谢谢                 

使用道具

12
不二不幸福 发表于 2018-1-19 16:03:19 |只看作者 |坛友微信交流群
昨天报错了之后我就把列名修改了下,现在每个文件的列名变成了:
chr position coverage_sample_name methylation_sample_name
所以现在39个文件的前两列列名是一样的,我也是想根据这两列来进行合并,由于文件过大所以是在服务器上跑的,代码如下:
  1. #!/usr/bin/Rscript
  2. a = list.files("./filter")
  3. n = length(a)
  4. merge_data = read.csv(file = a[1],sep="",header=TRUE)
  5. for (i in 2:n){
  6.    new_data = read.csv(file = a[i],sep="",header=TRUE)
  7.    merge_data = merge(merge_data,new_data,by=c("chr","position"),all=TRUE)
  8. }
  9. 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
我现在完全不明白了,同样的代码为什么本地跑就能出结果,服务器上跑就总是报错,到底我哪里错了

使用道具

13
jgchen1966 发表于 2018-1-22 13:22:28 |只看作者 |坛友微信交流群
  一个很简单的事,让楼主,很烦恼,但咱们也帮不上。。象数据集合并之类的“数据操作”,在R中,太具”个性“。。不同的数据,甚至用不同R函数读入的数据,用不同R package ,不同电脑平台,其操作都可能有所不同。。学R ,用R ,有时真得很烦。。
   如果,不认真读上几本“数据操作”书,让自已有点”悟性“,莫名其妙的”错“,真是太多了,多得,常想,何必学,何心用!!!

鹑居鷇食,鸟行无彰

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 03:05