On Mon, 17 Aug 2009 12:24:28 +0200, deanj2k <dl...@le.ac.uk> wrote:


Hello.
I have a vector and within that vector is one expression.  When I display
this vector it comes up as

expression(NA_character_, NA_character_, "Null Effect", "Pooled effect",
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, paste("Het Contours ", I^2, sep = ""), 0.4,
    0.41, 0.42, 0.45, NA_character_)

Where the part in bold is the element which is an expression.  How do I
change this vector to a standard format what I can manipulate in the usual
way?

Dude, I have no idea what kind of analysis you are mastering, but that kind of output does not smell good. Inside the expression you have a nested expression, so you have to iterate over.
Here is a way to proceed:

te <- expression(NA_character_, NA_character_, "Null Effect", "Pooled effect",
    NA_character_, NA_character_, NA_character_, NA_character_,
    NA_character_, paste("Het Contours ", I^2, sep = ""), 0.4,
    0.41, 0.42, 0.45, NA_character_)

I <- 3
tl <- lapply(as.list(te), eval, envir=parent.frame())
str(tl)
List of 15
 $ : chr NA
 $ : chr NA
 $ : chr "Null Effect"
 $ : chr "Pooled effect"
 $ : chr NA
 $ : chr NA
 $ : chr NA
 $ : chr NA
 $ : chr NA
 $ : chr "Het Contours 9"
 $ : num 0.4
 $ : num 0.41
 $ : num 0.42
 $ : num 0.45
 $ : chr NA


or if you want unevaluated paste expression just:


as.list(te)
[[1]]
[1] NA

[[2]]
[1] NA

[[3]]
[1] "Null Effect"

[[4]]
[1] "Pooled effect"

[[5]]
[1] NA

[[6]]
[1] NA

[[7]]
[1] NA

[[8]]
[1] NA

[[9]]
[1] NA

[[10]]
paste("Het Contours ", I^2, sep = "")

[[11]]
[1] 0.4

[[12]]
[1] 0.41

[[13]]
[1] 0.42

[[14]]
[1] 0.45

[[15]]
[1] NA



Vitalie.
--

______________________________________________
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