我有一个更大的数据集,遵循相同的顺序,一个唯一的日期列,数据,唯一的日期列,日期等。我试图不仅按名称对数据列进行子集,还对唯一的日期列进行子集。下面的代码根据名称列表选择列,这是我想要的一部分,但是关于如何在子集列之前立即获取列的任何想法?
希望最终得到一个包含 Date1、Fire、Date3、Earth 列的 DF(仅使用 NameList)。
这是我的可重现代码:
Cnames <- c("Date1","Fire","Date2","Water","Date3","Earth")
MAINDF <- data.frame(replicate(6,runif(120,-0.03,0.03)))
colnames(MAINDF) <- Cnames
NameList <- c("Fire","Earth")
NewDF <- MAINDF[,colnames(MAINDF) %in% NameList]
最佳答案
怎么样
NameList <- c("Fire","Earth")
idx <- match(NameList, names(MAINDF))
idx <- sort(c(idx-1, idx))
NewDF <- MAINDF[,idx]
这里我们使用
match()
找到所需列的索引,然后我们可以使用索引减法来抓取它之前的列
关于r - 根据列名列表对列进行子集,并将列置于其之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27556353/