2017-08-22 24 views
1

我有以下代码行从数据框“Diff”中提取某些列。当应用data.table函数时,列名将被重命名为V1,V2,V3等。我如何保持列名与以前相同(因为它们出现在Diff数据框中)?应用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

你也可以做到这一点(在如果您想选择不同的名称): data.table(fund = Diff $ FactSet.Fund.Code,date = Diff $ FactsetDate.x,,desk = Diff $ DeskName.x) – user108363

回答

1

假设当你从一个data.frame去data.table出现问题,你可以先用diff <- data.table(diff)把你data.frame在其整体的data.table。 然后您可以使用subset()轻松地将您的data.table子集以及您想要保留的列名称列表。这样你会保留你的原名。这里所说:

# 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