2017-08-22 1 views
1

J'ai la ligne de code suivante qui extrait certaines colonnes du bloc de données "Diff". Lors de l'application de la fonction data.table, les noms des colonnes sont renommés V1, V2, V3, etc. Comment conserver les noms des colonnes comme avant (tels qu'ils apparaissent dans la structure de données Diff)?Conserver les mêmes noms de colonne après l'application de la fonction Data.table

data.table(Diff$FactSet.Fund.Code, Diff$FactsetDate.x, , Diff$DeskName.x) 
+6

'data.table (Diff [, c ("FactSet.Fund.Code", "FactsetDate.x", "DeskName.x")])' – Roland

+1

Vous pouvez aussi le faire (en Si vous voulez choisir un nom différent): data.table (fund = Diff $ FactSet.Fund.Code, date = Diff $ FactsetDate.x,, desk = Diff $ DeskName.x) – user108363

Répondre

1

En supposant que vos problèmes surgissent lorsque vous passez d'un data.frame à un data.table, vous pouvez transformer votre premier data.frame à un data.table dans son intégralité en utilisant diff <- data.table(diff). Puis vous pouvez facilement sous-ensemble votre data.table en utilisant subset() et une liste avec les noms des colonnes que vous souhaitez conserver. De cette façon, vous conserverez vos noms d'origine. Ici va:

# Libraries 
library(data.frame) 

# Here's dataframe with some random data 
# that fits your description: 
diff = data.frame(FactSet.Fund.Code=rep(c("a","b"),c(2,3)),FactsetDate.x=1:5,FactsetSomethingelse=5:1) 
#class(diff) 

diff = data.table(diff) 
#class(diff) 

# The names fo the columns you'd like to keep: 
selection = c('FactSet.Fund.Code','FactsetDate.x') 

# Your desired subset: 
diff <- subset(diff,,selection) 

# And now it should look like this: 

    FactSet.Fund.Code FactsetDate.x 
1:     a    1 
2:     a    2 
3:     b    3 
4:     b    4 
5:     b    5