Spliting a dataframe based in a chromosome
1
0
Entering edit mode
10.6 years ago
viniciushs88 ▴ 50

I would like to split my dataframe depending of a column tagged as Chr. I would like to write these split objetcs in a .txt file automatically too.

My input:

Name   Chr  Position LTR
Prob1   1     55     0.2
Prob2   2     25     0.9
Prob3   3     25     0.7
Prob4   1     45     0.5

My First output:

Name   Chr  Position  LTR 
Prob1   1      55     0.2
Prob4   1      45     0.5

My second output:

 Name   Chr  Position  LTR 
 Prob2   2     25      0.9

My last output:

Name Chr Position LTR Prob3 3 25 0.7

I am trying to do something like:

outfile <- paste0("newsplit",i,".txt") SPLIT PROCEDURES write.table(all, outfile, sep=";")

Where i is the correspondent chromosome (value in a Chr column).

Cheers!

split chr R • 3.2k views
ADD COMMENT
2
Entering edit mode
10.6 years ago

There are many ways to do this. Here is one:

> a = data.frame(Chr=c(1,1,2,3),Position=c(1234,5678,3456,7890),LTR=c(2,3,4,5))
> a
  Chr Position LTR
1   1     1234   2
2   1     5678   3
3   2     3456   4
4   3     7890   5

> for(i in unique(a$Chr)){write.table(a[a$Chr==i,],paste("newsplit",i,".txt",sep=""),sep="\t",quote=F,row.names=F)}
ADD COMMENT

Login before adding your answer.

Traffic: 2599 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6