I commenti allegati alla risposta di @baptiste fanno notare che x
e non sono oggetti di tipo "expression"
(uno dei nove tipi di vettore di base utilizzati da R). Pertanto, non possono combinare utilizzando c()
, come potrebbero se fossero in realtà vettori expression
.
Se davvero si vuole combinare gli oggetti della classe "{"
(che sono chiamati "oggetti linguaggio composti" in this section della definizione R Lingua) si potrebbe fare qualcosa di simile:
x <- substitute({a;b;c})
y <- substitute({d;e;f})
class(x)
# [1] "{"
as.call(c(as.symbol("{"), c(as.list(x)[-1], as.list(y)[-1])))
{
a
b
c
d
e
f
}
Poi, se si lo faremo frequentemente, potresti creare una funzione che combini un insieme arbitrario di oggetti della classe :
myC <- function(...) {
ll <- list(...)
ll <- lapply(ll, function(X) as.list(X)[-1])
ll <- do.call("c", ll)
as.call(c(as.symbol("{"), ll))
}
# Try it out
myC(x, y, y, y, x)
fonte
2012-03-17 17:59:46
Sì. .................. –
Penso che tu sia sfortunato qui, Mike. –