This should do it for you: x <- read.table(textConnection(" V1 V2 V3 1 chr1 11255 55 2 chr1 11320 29 3 chr1 11400 45 4 chr2 21680 35 5 chr2 21750 84 6 chr2 21820 29 7 chr2 31890 46 8 chr3 32100 29 9 chr3 52380 29 10 chr3 66450 46" ), header=TRUE) outfile <- '/tempxx.txt' cat("browser position chr1:1-10000\nrowser hide all\n", file=outfile) result <- lapply(split(x, x$V1), function(.chro){ cat(sprintf("track type=wiggle_0 name=sample description=%s_sample visibility=full\nvariableStep chrom=%s span=1\n", as.character(.chro$V1[1]), as.character(.chro$V1[1])), file=outfile, append=TRUE) write.table(.chro[, -1], sep="\t", file=outfile, append=TRUE, quote=FALSE, col.names=FALSE, row.names=FALSE) })
On 2/6/08, joseph <[EMAIL PROTECTED]> wrote: > > Hi Jim > yes, this exactly want I want. However, I need one more step to get rid of > the first column so that the final file looks like this: > browser position chr1:1-10000 > browser hide all > track type=wiggle_0 name=sample description=chr1_sample visibility=full > variableStep chrom=chr1 span=1 > 11255 55 > 11320 29 > 11400 45 > track type=wiggle_0 name=sample description=chr2_sample visibility=full > variableStep chrom=chr2 span=1 > 21680 35 > 21750 84 > 21820 29 > track type=wiggle_0 name=sample description=chr3_sample visibility=full > variableStep chrom=chr3 span=1 > 32100 29 > 32170 45 > 32240 45 > Thank you very much > ----- Original Message ---- > From: jim holtman <[EMAIL PROTECTED]> > To: joseph <[EMAIL PROTECTED]> > Cc: r-help@r-project.org > Sent: Wednesday, February 6, 2008 2:37:38 AM > Subject: Re: inserting text lines in a dat frame > > Try this and see if it is what you want: > > x <- read.table(textConnection(" V1 V2 V3 > 1 chr1 11255 55 > 2 chr1 11320 29 > 3 chr1 11400 45 > 4 chr2 21680 35 > 5 chr2 21750 84 > 6 chr2 21820 29 > 7 chr2 31890 46 > 8 chr3 32100 29 > 9 chr3 52380 29 > 10 chr3 66450 46" ), header=TRUE) > cat("browser position chr1:1-10000\nrowser hide all\n", file='tempxx.txt') > result <- lapply(split(x, x$V1), function(.chro){ > cat(sprintf("track type=wiggle_0 name=sample description=%s_sample > visibility=full\nvariableStep chrom=%s span=1\n", > as.character(.chro$V1[1]), as.character(.chro$V1[1])), > file="tempxx.txt", append=TRUE) > write.table(.chro, sep="\t", file="tempxx.txt", append=TRUE, > col.names=FALSE, row.names=FALSE) > }) > > > > On Feb 5, 2008 11:22 PM, joseph <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > Hi Jim > > I am trying to prepare a bed file to load as accustom track on the UCSC > > genome browser. > > I have a data frame that looks like the one below. > > > x > > V1 V2 V3 > > 1 chr1 11255 55 > > 2 chr1 11320 29 > > 3 chr1 11400 45 > > 4 chr2 21680 35 > > 5 chr2 21750 84 > > 6 chr2 21820 29 > > 7 chr2 31890 46 > > 8 chr3 32100 29 > > 9 chr3 52380 > > 29 > > 10 chr3 66450 46 > > I would like to insert the following 4 lines at the beginning: > > browser position chr1:1-10000 > > browser hide all > > track type=wiggle_0 name=sample description=chr1_sample visibility=full > > variableStep chrom=chr1 span=1 > > and then insert 2 lines before each chromosome: > > track type=wiggle_0 name=sample description=chr2_sample visibility=full > > vriableStep chrom=chr2 span=1 > > The final result should be tab delimited file that looks like this: > > browser position chr1:1-10000 > > browser hide all > > track type=wiggle_0 name=sample description=chr1_sample visibility=full > > variableStep chrom=chr1 span=1 > > chr1 11255 55 > > chr1 11320 29 > > chr1 11400 45 > > track type=wiggle_0 name=sample description=chr2_sample visibility=full > > variableStep chrom=chr2 span=1 > > chr2 21680 35 > > chr2 21750 84 > > chr2 21820 29 > > track type=wiggle_0 name=sample description=chr3_sample visibility=full > > variableStep chrom=chr3 > > span=1 > > chr3 32100 29 > > chr3 32170 45 > > chr3 32240 45 > > Any kind of help or guidance will be much appreciated. > > Joseph > > > > ________________________________ > > Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it > > now. > > > > -- > Jim Holtman > Cincinnati, OH > +1 513 646 9390 > > What is the problem you are trying to solve? > > > ________________________________ > Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it > now. -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve? ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.