web-dev-qa-db-fra.com

Comment exclure une colonne de data.table OR convertir en data.table en MTS

Lorsque vous utilisez data.table, Est-il possible de renvoyer toutes les colonnes sauf une, comme dans data.frame?

Si la réponse est non, est-ce que quelqu'un a une manière élégante de transformer une série temporelle multiple data.table En Zoo ou autre objet de série temporelle?

Prenons l'exemple suivant:

library(data.table)
library(Zoo)

## DEFINE DATA
set.seed(1)
dt = data.table(
    mydates = as.Date("2012-01-01") + 1:9, 
    value1 = sort(rpois(9, 6)),
    value2 = sort(rpois(9, 6)),
    value3 = sort(rpois(9, 6)),
    value4 = sort(rpois(9, 6)),
    value5 = sort(rpois(9, 6)))

## CONVERT TO DATA FRAME
df = as.data.frame(dt)

## CONVERT TO Zoo
zooObj = Zoo(df[,-1], df$mydates)

## EXAMPLE OF DESIRED RESULTS
plot(zooObj, col=1:ncol(zooObj))

Comment pourrais-je faire cela sans df = as.data.frame(dt)?

48
geneorama

Essayez with=FALSE:

dt[,-1,with=FALSE]

En passant, la demande de fonctionnalité n ° 416 est liée:

Ajouter pas joindre DT[-J(...)], et pas des colonnes DT[,-"colC",with=FALSE].

59
Matt Dowle