我在R中有一个数据框,在行中有一些观察结果和列中的各种特征 - 定量和定性 - 。我想以某种方式重新排序我的数据框的列,它命令从开始时的5个特定数字变量开始,它们属于特定的组。我的想法是,之后我想使用PCA变体方法,它需要我的连续变量组按顺序在一个组中一起排序。在我的例子中,我的数据框的列按如下顺序排序:
colnames(dat)
[1] "SUV" "CCT5" "FD" "k3"
[5] "MTHFD1" "HPGDS" "PAPSS2" "INF"
[9] "SLC26A2" "k4" "NPM1" "TIMP1"
[13] "NR3C2" "CA2" "UGDH" "MEF2C"
[17] "POP1" "ENO1" "DKC1" "EDNRB"
[21] "VRK1" "CD44" "GSTP1" "AARS"
[25] "PDE2A" "MAOA" "CCT8" "CA4"
[29] "PPA1" "RAE1" "PGM1" "PPP1CB"
[33] "ACADM" "NME1" "PPARG" "PRDX4"
[37] "PPARGC1A" "CTPS1" "CD36" "IARS"
[41] "CCT4" "CA1" "SULT1A2" "ACADS"
[45] "Meta_factor" "Disease" "Location_Type" "Tumor_Stage"
[49] "Lymph_Node"
因此,我希望我的数据框的列以下列变量开头: FD,SUV,K3,INF,k4 ,然后是以下变量。这可能来自R?
中的函数或包答案 0 :(得分:1)
我想最简单的方法就是:
first.col <- c("FD", "SUV", "K3", "INF", "k4")
dat <- dat[,c(first.col, setdiff(colnames(dat), first.col))]
更一般地说,如果你想使用特定类型的变量组(在这种情况下是数字):
dat.numerics <- colnames(x)[sapply(x, class) %in% c('numeric','integer')]
dat[,dat.numerics]
同样的因素方法:
dat.factors <- colnames(x)[sapply(x, class)=='factor']
dat[,dat.factors]
答案 1 :(得分:0)
试试这个:
first = c("FD", "SUV", "K3", "INF" ,"k4")
dat = cbind(dat[,first], dat[,!(colnames(dat) %in% first)])