[R] write out list of lists with names
arun
smartpink111 at yahoo.com
Wed Nov 28 20:03:36 CET 2012
Hi,
Try this:
#x- data
invisible(sapply(names(x),function(y) {cat(y,"\n");print(x[[y]]);cat("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","\n")}))
MU10
MU.16 MU.19 MU.21 mean sd
0.8052791 0.4350489 0.4551954 0.5651744 0.2081806
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MU11
MU.21 MU.22 mean sd
0.56061566 0.65200918 0.60631242 0.06462498
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MU12
MU.14 MU.20 MU.23 mean sd
0.7726512 0.3925776 0.3822244 0.5158177 0.2224845
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MU13
MU.20 MU.22 mean sd
0.3636058 0.2139613 0.2887835 0.1058146
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MU14
MU.18 mean sd
0.3169202 0.3169202 NA
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MU15
MU.18 MU.22 mean sd
0.5764542 0.8236923 0.7000733 0.1748237
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A.K.
----- Original Message -----
From: Iain Gallagher <iaingallagher at btopenworld.com>
To: r-help <r-help at r-project.org>
Cc:
Sent: Wednesday, November 28, 2012 10:30 AM
Subject: [R] write out list of lists with names
Hello List
I have a list question. I'm doing some data wrangling for a colleague and I have nested list in the following format:
structure(list(MU10 = structure(c(0.80527905920989, 0.4350488707836,
0.455195366623, 0.565174432205497, 0.208180556861924), .Names = c("MU.16",
"MU.19", "MU.21", "mean", "sd")), MU11 = structure(c(0.56061565798878,
0.65200918021661, 0.606312419102695, 0.0646249793238221), .Names = c("MU.21",
"MU.22", "mean", "sd")), MU12 = structure(c(0.77265115449472,
0.3925776107826, 0.38222435807226, 0.515817707783193, 0.222484520748552
), .Names = c("MU.14", "MU.20", "MU.23", "mean", "sd")), MU13 = structure(c(0.36360576458114,
0.21396125968483, 0.288783512132985, 0.105814644179484), .Names = c("MU.20",
"MU.22", "mean", "sd")), MU14 = structure(c(0.31692017862428,
0.31692017862428, NA), .Names = c("MU.18", "mean", "sd")), MU15 = structure(c(0.57645424339545,
0.82369227173036, 0.700073257562905, 0.174823686402807), .Names = c("MU.18",
"MU.22", "mean", "sd"))), .Names = c("MU10", "MU11", "MU12",
"MU13", "MU14", "MU15"))
I would like to write this to a text file in the form e.g. (each x is a value):
MU10
MU.16 MU.19 MU.21 mean sd
x x x x x
MU11
MU.21 MU.22 mean sd
x x x x
Where each list element is on a new block of three rows.
After consulting Google I came across the following:
fnlist <- function(x, fil){
z <- deparse(substitute(x))
cat(z, "\n", file = fil)
nams <- names(x)
for (i in seq_along(x) ){ cat(nams[i], "\n", x[[i]], "\n",file = fil, append = TRUE) }
}
fnlist(holdList, 'res.txt')
However this doesn't print the names within each sub list.
Can anyone advise?
Thanks
Iain
R version 2.15.1 (2012-06-22)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] plyr_1.7.1 gsubfn_0.6-5 proto_0.3-9.2
loaded via a namespace (and not attached):
[1] tcltk_2.15.1 tools_2.15.1
Iain
______________________________________________
R-help at 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.
More information about the R-help
mailing list