Hello,
is there already a function in any R package which does
source code formatting of deparsed lists?
Let's create the following list:
x <- list(a = round(rnorm(3), 2),
b = round(rnorm(3), 2))
xx <-c(aa = round(rnorm(30)), f = function(a) a + b, list(x, x))
Now, I want deparse it in a way that yields something like:
list(
aa = c(0.25, 0.18, 0.84, -1.25, 0.09, -0.99, 1.64,
1.42, -1.29, -0.14, -1.07, -1.05, 0.98, 0.33,
1.76, -1.66, 0.96, -0.21, -1.29, 0.78, -0.4,
-1.63, -0.78, -1.05, 1.27, -1.44, 0.12, -0.4,
0.02, 1.03),
f = function (a) a + b,
list(
a = c(2.22, 0.36, 0.74),
b = c(0.46, 0.41, 1.46)
),
list(
a = c(2.22, 0.36, 0.74),
b = c(0.46, 0.41, 1.46)
)
)
Thanks a lot!
Thomas P.
pretty formatting of lists
3 messages · Thomas Petzoldt, jim holtman
Is this basically what you want?
xx <-list(aa = round(rnorm(30),2), f = function(a) a + b, a=x, b=x) xx
$aa [1] 1.34 -0.21 -0.18 -0.10 0.71 -0.07 -0.04 -0.68 -0.32 0.06 -0.59 0.53 -1.52 0.31 -1.54 -0.30 [17] -0.53 -0.65 -0.06 -1.91 1.18 -1.66 -0.46 -1.12 -0.75 2.09 0.02 -1.29 -1.64 0.45 $f function(a) a + b $a $a$a [1] -0.06 -0.16 -1.47 $a$b [1] -0.48 0.42 1.36 $b $b$a [1] -0.06 -0.16 -1.47 $b$b [1] -0.48 0.42 1.36
On Sun, Mar 16, 2008 at 8:47 AM, Thomas Petzoldt <thpe at simecol.de> wrote:
Hello,
is there already a function in any R package which does
source code formatting of deparsed lists?
Let's create the following list:
x <- list(a = round(rnorm(3), 2),
b = round(rnorm(3), 2))
xx <-c(aa = round(rnorm(30)), f = function(a) a + b, list(x, x))
Now, I want deparse it in a way that yields something like:
list(
aa = c(0.25, 0.18, 0.84, -1.25, 0.09, -0.99, 1.64,
1.42, -1.29, -0.14, -1.07, -1.05, 0.98, 0.33,
1.76, -1.66, 0.96, -0.21, -1.29, 0.78, -0.4,
-1.63, -0.78, -1.05, 1.27, -1.44, 0.12, -0.4,
0.02, 1.03),
f = function (a) a + b,
list(
a = c(2.22, 0.36, 0.74),
b = c(0.46, 0.41, 1.46)
),
list(
a = c(2.22, 0.36, 0.74),
b = c(0.46, 0.41, 1.46)
)
)
Thanks a lot!
Thomas P.
______________________________________________ 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.
Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve?
jim holtman wrote:
Is this basically what you want?
xx <-list(aa = round(rnorm(30),2), f = function(a) a + b, a=x, b=x) xx
$aa [1] 1.34 -0.21 -0.18 -0.10 0.71 -0.07 -0.04 -0.68 -0.32 0.06 -0.59 0.53 -1.52 0.31 -1.54 -0.30 [17] -0.53 -0.65 -0.06 -1.91 1.18 -1.66 -0.46 -1.12 -0.75 2.09 0.02 -1.29 -1.64 0.45 $f function(a) a + b $a $a$a [1] -0.06 -0.16 -1.47 $a$b [1] -0.48 0.42 1.36 $b $b$a [1] -0.06 -0.16 -1.47 $b$b [1] -0.48 0.42 1.36
No, I want a neat source code representation, not simply the printed content -- technically something like the following, but more reader friendly:
cat(deparse(xx), fill=60)
structure(list(aa = c(0.25, 0.18, 0.84, -1.25, 0.09, -0.99, 1.64,
1.42, -1.29, -0.14, -1.07, -1.05, 0.98, 0.33, 1.76, -1.66, 0.96,
-0.21, -1.29, 0.78, -0.4, -1.63, -0.78, -1.05, 1.27, -1.44, 0.12,
-0.4, 0.02, 1.03), f = function (a)
a + b, structure(list(a = c(2.22, 0.36, 0.74), b = c(0.46, 0.41,
1.46)), .Names = c("a", "b")), structure(list(a = c(2.22, 0.36,
0.74), b = c(0.46, 0.41, 1.46)), .Names = c("a", "b"))), .Names =
c("aa", "f", "", ""))
I wonder whether a function for some kind of "pretty deparsing" already
exists before I start to write my own solution.
Thomas P.
On Sun, Mar 16, 2008 at 8:47 AM, Thomas Petzoldt <thpe at simecol.de> wrote:
Hello,
is there already a function in any R package which does
source code formatting of deparsed lists?
Let's create the following list:
x <- list(a = round(rnorm(3), 2),
b = round(rnorm(3), 2))
xx <-c(aa = round(rnorm(30)), f = function(a) a + b, list(x, x))
Now, I want deparse it in a way that yields something like:
list(
aa = c(0.25, 0.18, 0.84, -1.25, 0.09, -0.99, 1.64,
1.42, -1.29, -0.14, -1.07, -1.05, 0.98, 0.33,
1.76, -1.66, 0.96, -0.21, -1.29, 0.78, -0.4,
-1.63, -0.78, -1.05, 1.27, -1.44, 0.12, -0.4,
0.02, 1.03),
f = function (a) a + b,
list(
a = c(2.22, 0.36, 0.74),
b = c(0.46, 0.41, 1.46)
),
list(
a = c(2.22, 0.36, 0.74),
b = c(0.46, 0.41, 1.46)
)
)
Thanks a lot!
Thomas P.