在R中基于colname的列之后移动基于colname的列
我希望能够仅根据列的名称将列移动到所需的位置,我希望按名称将列移动到具有定义名称的列之后所需的位置 您可以以数据虹膜为例 例如:在R中基于colname的列之后移动基于colname的列,r,R,我希望能够仅根据列的名称将列移动到所需的位置,我希望按名称将列移动到具有定义名称的列之后所需的位置 您可以以数据虹膜为例 例如: data(iris) 实际列顺序: > colnames(iris) [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species" 我希望使用COLNAME使用代码将“Petal.Width”放在“sepa.Length”之后,并避免使用dplyr选择解决方案等手动输入
data(iris)
实际列顺序:
> colnames(iris)
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
我希望使用COLNAME使用代码将“Petal.Width”放在“sepa.Length”之后,并避免使用dplyr选择解决方案等手动输入
非常感谢您。如果我理解正确,您可以通过使用select操作列名向量来实现所需的功能 首先,您需要一个函数,它接受一个名称向量(假定是唯一的),以及两个特定的条目a和b,并将a移到b后面。我认为这个函数可以做到这一点(即使它看起来有点笨拙)
move这是否回答了您的问题?晚上好。欢迎来到StackOverflow!请阅读关于如何给予帮助的信息。这样你可以帮助别人帮助你@sertsedat没有,因为这是一种手动方法,我需要自动执行任务,只需按列名将一列移动到另一列。@RevanKnight您检查了该问题的所有答案了吗?我很确定你可以用一些答案
move <- function(names, a, b) {
names_without_a <- names[which(names != a)]
b_pos <- which(names_without_a == b)
c(names_without_a[1:b_pos],
a,
names_without_a[(b_pos+1):length(names_without_a)])
}
df <-
iris %>%
select(move(colnames(iris), 'Petal.Width', 'Sepal.Length'))