表中的订单列

时间:2014-01-02 16:02:21

标签: r

我想订购一个表的列。 我的数据看起来像这样(我在整个表中有50个样本和150行):

> histo

 CD6 CD1 CD12
 Actinomyces 0.03196031 0.066683743 0.04563851
 Atopobium 0.01869159 0.003244536 0.00447774
 Streptococcus 0.23355000 0.452131300 0.15800000
 Veillonella 0.72330000 0.416600000 0.15000000
 Enterococcus 0.41223300 0.755200000 0.17400000

我试过了:

 > library(data.table)
 > df <- read.table(file="histo.txt", row.names=1, header=T, sep="")
 > setcolorder(df, c("CD1", "CD6", "CD12"))

但我收到了这个错误:

  

setcolorder中的错误(df,c(“CD1”,“CD6”,“CD12”)):x不是data.table

有谁知道我该怎么办?

1 个答案:

答案 0 :(得分:3)

有几种方法可以做到这一点。

df <- df[c("CD1", "CD6", "CD12")]    # no need for data tables

dt <- data.table(df)                 # as per @BenBolker
setcolorder(dt,c("CD1", "CD6", "CD12"))

不同之处在于,对于数据表,您不会复制结果,只需移动行即可。对于非常大的表,这会更快,但在您的情况下并不重要。