On Jun 19, 2009, at 10:25 AM, Alexandre Lockhart wrote:


My other question involved formatting my output. Normally, my text file has 8 columns, each column with 500 values before the next 8 below are generated, and so on until 28 are reached. I have examined formatting issues with each function (cbind, sink, apply, trying matrix (only one set is output)) in my revised code, but am unable to achieve my wanted output file: 7 columns of 500 generated values, four different times. Thank you.

a1<- c (178.07,178.28,178.08,177.74,177.04,178.17,177.58,57.71,59.6,60.92,59.48,59.32,61.59,59.94,28.9,29.82,30.73,25.68,27.93,28.98,29.76,123.48,127.27,127.8,127.2,127.13,126.71,125.5 ) a2<- c (1.69,1.3,1 ,. 18,1.53,1.31,1.35,1.83,1.56,1.12 ,. 74,1.48,1.67,1.53 ,.95,.87,0.03,1.12,1.95,1.22,1.04,1.64,1.83,1,1,1.08,1.35,2.37)
sink(file='/home/lockhartag/Wim/TRP/output.txt',append=TRUE)
apply(cbind(a1, a2), 1, function(x) rnorm(500, x[1], x[2]))
sink()

Hi Alexandre,

Try this:

set.seed(1)
Result <- apply(cbind(a1, a2), 1, function(x) rnorm(500, x[1], x[2]))

# Take the 28 columns, split them up in groups of 7 columns and rbind() them together Result <- rbind(Result[, 1:7], Result[, 8:14], Result[, 15:21], Result[, 22:28])

> str(Result)
 num [1:2000, 1:7] 179 177 180 180 180 ...


That gives you a matrix with 7 columns and 2000 rows. The 2000 rows will be 4 sets of 500 each, one set of 500 per time period in order.

You can then use:

  write.table(Result, file = "out.txt")

to write 'Result' to a text file. Using the defaults above, the text file will contain both row names and column names. See ?write.table for more information.

HTH,

Marc

______________________________________________
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.

Reply via email to