我想订购一个表的列。 我的数据看起来像这样(我在整个表中有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
有谁知道我该怎么办?
答案 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"))
不同之处在于,对于数据表,您不会复制结果,只需移动行即可。对于非常大的表,这会更快,但在您的情况下并不重要。